列表用法补充

列表属于序列中的一种,序列包括(列表,元组,字符串,buffer对象,xrange对象)

列表跟元组唯一的区别就是:列表可以修改,元组不能被修改(元组不可修改的属性决定了元组可以在映射中当作键使用;可以作为很多内建函数和方法的返回值存在)

之前在python基础篇中有总结过列表的基本用法,在这里做一下列表用法的补充:

a=['tina fei',18]
b=['tom li',22]
c=[a,b]
print(c)
print(c[0])
执行结果:
[['tina fei', 18], ['tom li', 22]]
['tina fei', 18]
phoneNumbers = ['213123','542113','543231','974723']
names=['Ada', 'Bill', 'Candy', 'David']
a=phoneNumbers[names.index('Bill')]
print(a)#542113

切片用法的案例补充:

#切片的用法补充
data=[1,2,3,4,5,6,7,8,9,10]
print(data[-3:-1])
print(data[-3:])
print(data[::2])##从第三个开始是对步长的练习print(data[1::2])
print(data[::-1])
print(data[-1:-8:-1])
print(data[8:1:-1])

执行结果如下:
[8, 9]
[8, 9, 10]
[1, 3, 5, 7, 9]
[2, 4, 6, 8, 10]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
[10, 9, 8, 7, 6, 5, 4]
[9, 8, 7, 6, 5, 4, 3]

 分片赋值的用法:

data=[1,2,3,4,5,6,7,8,9,10]
data[0]=100#索引赋值
del(data[2])#删除元素
data[1:4]=list('tina')#分片赋值
print(data,len(data))#[100, 't', 'i', 'n', 'a', 6, 7, 8, 9, 10] 10
data[-2:]=list('hahaha')#分片赋值时,原片与新片长度不同
print(data,len(data))#[100, 't', 'i', 'n', 'a', 6, 7, 8, 'h', 'a', 'h', 'a', 'h', 'a'] 14
data[0:0]=list('test')#分片赋值可以在指定位置插入新的元素
print(data,len(data))#['t', 'e', 's', 't', 100, 't', 'i', 'n', 'a', 6, 7, 8, 'h', 'a', 'h', 'a', 'h', 'a'] 18
深浅拷贝中涉及到的列表分片:
x=list('12345')
y=x
x.reverse()
print(y)#['5', '4', '3', '2', '1']这里的y也跟着改变了
#但是用分片的方法复制,x与Y是相互独立的,修改x,不会影响Y
y=x[:]
y.sort()
print(x,y)#['5', '4', '3', '2', '1'] ['1', '2', '3', '4', '5']

 

 

序列与运算符相结合的用法:

1、加法:
first=[1,2,3]
second=[2,3,4]
print(first+second)#[1, 2, 3, 2, 3, 4]
2、乘法:
first=[1,2,3]
print(first*3)
print([None]*2)
执行结果:
[1, 2, 3, 1, 2, 3, 1, 2, 3]
[None, None]

 

just for fun:打印盒子的案例(练习序列与运算符的用法)

mystr=input('input any string follow your heart:')
strlen=len(mystr)
linestart=20
print(' '*linestart+'+'+'-'*strlen+'+')
print(' '*linestart+'|'+' '*strlen+'|')
print(' '*linestart+'|'+mystr+'|')
print(' '*linestart+'|'+' '*strlen+'|')
print(' '*linestart+'+'+'-'*strlen+'+')
执行结果如下:
input any string follow your heart:I am falling in love with tina!
                    +-------------------------------+
                    |                               |
                    |I am falling in love with tina!|
                    |                               |
                    +-------------------------------+

 列表推导式

matix=[[0 for i in range(4)] for i in range(4)]        # 用列表推导式初始化生成一个4*4的列表,列表元素全为 0

执行结果如下:
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

 

posted @ 2016-06-13 10:58  tina.py  阅读(404)  评论(1编辑  收藏  举报