您的位置:首页 > 编程语言 > Python开发

Python笔记003——列表

2015-10-04 22:55 537 查看
列表

1有序的集合

2通过偏移来索引,从而读取数据

3支持嵌套

4可变的类型

a=[1,2,3]

print(a[-1]) 结果 3

b=[[1,2,3],[4,5,6]]

print(b) 结果[[1, 2, 3], [4, 5, 6]]

print(b[0]) 结果[1, 2, 3]

print(b[0][1]) 结果 2

1 切片

a=[1,2,3,4,5,6,7]

print(a[0:3:1]) 结果:[1, 2, 3] #正向索引

print(a[-1:-5:-1]) 结果:[7, 6, 5, 4] #反向索引

print(a[1:]) 结果:[2, 3, 4, 5, 6, 7] #默认索引

print(a[1::2]) 结果:[2, 4, 6] #默认索引,步长值2

2 添加操作

“+”

extend 接受参数并将该参数的每个元素都添加到原有的列表中,原地修改列表而不是新建列表

append 添加任意对象的引用到列表的末端

insert 插入任意对象的引用到列表中,可以控制插入位置

创建列表:

member=['wu','jia','dong']

member.append('xiang') #append()函数只能添加一个元素或一个列表

print(member) 结果['wu', 'jia', 'dong', 'xiang']

member.extend(['bi','ye','le','ya']) #exten()函数能向列表中添加多个元素,但要加方括号(列表形式)

print(member) 结果['wu', 'jia', 'dong', 'xiang', 'bi', 'ye', 'le', 'ya']

member.insert(3,'hao') # 向列表指定位置插入元素

print(member) 结果['wu', 'jia', 'dong', 'hao', 'xiang', 'bi', 'ye', 'le', 'ya']

3 列表修改

修改列表本身只需要直接赋值操作就行

4列表的删除

del 我们通过索引啥拿出指定位置的元素

del a 删除列表对象的引用

del a[:] 清空列表对象里的元素

remove 移除列表中指定值的第一个匹配值。如果没找到的话,会

pop 返回最后一个元素,并从list中删除

member.remove('hao') # 只能删除一个元素

print(member) 结果['wu', 'jia', 'dong', 'xiang', 'bi', 'ye', 'le', 'ya']

del member[0] #del后面不能有点号,括号里只能是数字。删除指定位置的元素

print(member) 结果'jia', 'dong', 'xiang', 'bi', 'ye', 'le', 'ya']

列表元素互换位置(xiang和bi互换)

temp=member[2]

member[2]=member[3]

member[3]=temp

print(member) 结果['jia', 'dong', 'bi', 'xiang', 'ye', 'le', 'ya']

member.pop()

print(member) 结果['jia', 'dong', 'bi', 'xiang', 'ye', 'le']

member.pop(5)

print(member) 结果['jia', 'dong', 'bi', 'xiang', 'ye']

5列表索引值【方括号[]】

member【1:3】

6列表操作符

*比较操作符

*逻辑操作符

*连接操作符

*重复操作符

*成员关系操作符

比较操作符:

list1=[1,2,3]

list2=[2,3,4]

print(list1>list2) 结果False #列表与列表的比较是比较0元素

逻辑操作符:

list1=[1,2,3]

list2=[2,3,4]

lst3=[4,5,6]

print(list1<list2 and list2<list3) 结果True

连接操作符:

list5=list1+list2

print (list5) 结果:[1, 2, 3, 2, 3, 4]

重复操作符

list1=[1,2,3]

list2=[2,3,4]

list1*=3

print (list1) 结果:[1, 2, 3, 1, 2, 3, 1, 2, 3]

成员关系操作符;

list1=[1,2,3]

list2=[2,3,4]

print (1 in list1 and 5 not in list1 ) 结果True #注意这里的元素不要引号

list3=[1,2,3,[4,5,6],7,8,9] # [4,5,6]是list3中的一个元素

print (4 in list3) 结果: False #应该要写[4,5,6]是list3中的元素

print(4 in list3[3]) 结果:True

print(list3[3][2]) 结果:6

7 列表内置函数(dir(list))

count函数

list1=[1,2,3,1,2,3,1,1,1,1]

print(list1.count(2)) 结果2 #count函数,计算他的参数在列表中的次数,2 出现了2次

index函数

list1=[1,2,3,1,2,3,1,1,1,1]

print(list1.index(1,3,8)) 结果3 #后面参数3和8表示范围

reverse()函数

list1=[1,2,3,1,2,3,1,1,1,1]

list1.reverse()

print(list1) 结果[1, 1, 1, 3, 2, 1, 3, 2, 1]

sort()函数

list1=[1,2,3,1,2,3,1,1,1,1]

list1.sort() #没加参数,默认从小到大

print(list1) 结果[1, 1, 1, 1, 1, 1, 2, 2, 3, 3]

list1.sort(reverse=True) #加上参数,反过来,从大到小

print(list1) 结果:[3, 3, 2, 2, 1, 1, 1, 1, 1, 1]

列表的分片拷贝补充:

list1=[6,5,4,3,2,1]

list2=list1[:] #只是复制了list1中的值

list3=list1

print(list1) 结果[6, 5, 4, 3, 2, 1]

print(list2) 结果[6, 5, 4, 3, 2, 1]

print(list3) 结果[6, 5, 4, 3, 2, 1]

print ('\n')

list1.sort() 结果

print(list1) 结果[1, 2, 3, 4, 5, 6]

print(list2) 结果[6, 5, 4, 3, 2, 1]

print(list3) 结果[1, 2, 3, 4, 5, 6]

8列表推导式:[expr for iter_var in iterable]

首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。比如我们要生成一个包含1到18的列表

print([x for x in range(1,11)])

print(list(range(1,11)))

[expr for iter_var in iterable if cond_expr]

print([x for x in range(1,11) if x % 2 == 1])

6内置list

List(obj)—返回一个列表

7 range与xrange比较
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: