Python-列表
列表
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比较