列表的一些常用操作符
0)比较操作符
列表中,只有一个元素,直接比较列表元素大小;
>>> list1 = [123]
>>> list2 = [234]
>>> list1>list2
False
列表中有多个元素,以第一个元素的比较结果为主
>>> list = [123,456]
>>> list1 = [123,456]
>>> list2 = [234,123]
>>> list1 >list2
False
1)逻辑操作符
>>> list1 < list2 and list1 == list3
True
2)连接操作符
>>> list4 = list1 +list2
>>> list4
[123, 456, 234, 123]
3)重复操作符
>>> list3 * 2
[123, 456, 123, 456]
>>> list3 * 5
[123, 456, 123, 456, 123, 456, 123, 456, 123, 456]
没有赋值的时候 list3 不改变
>>> list3
[123, 456]
可以赋值给另一个列表
>>> list5 = list3 * 2
>>> list5
[123, 456, 123, 456]
可以自己赋值给自己
>>> list3 *= 2
>>> list3
[123, 456, 123, 456]
4)成员关系操作符
>>> 123 in list3
True
>>> 'haha' not in list3
True
>>>
>>> 123 not in list3
False
in 操作符只能查询列表中的一层
表中表就查不出
>>> list5 = [123,['hh'],456]
>>> list5
[123, ['hh'], 456]
>>> 'hh' in list5
False
这样才能找到
>>> 'hh' in list5[1]
True
如果列表中的列表不止一个元素,其访问和而为数组类似
>>> list5 = [123,['hh','oo'],456]
>>> 'oo' in list5[1][1]
True
5)列表的小伙伴们:
使用 dir(list) 查询
6)count();
如 1 在 list1 中出现的次数
>>> list1=[1,1,1,1,2,3,4,5]
>>> list1.count(1)
4
7)index()
查询 list1 中,1 的起始位置
>>> list1=[1,1,1,1,2,3,4,5]
>>> list1.index(1)
0
查询 list1 中,2 到 5 位置上 1 的个数
>>> list1.index(1,2,5)
2
查询 list1 中,3 是否在下标为 5 的位置上
>>> list1.index(3,5)
5
如果不在
>>> list1.index(3,6)
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
list1.index(3,6)
ValueError: 3 is not in list
8)reverse() 反转
>>> list1.reverse()
>>> list1
9)sort(),排序
>>> list1.sort()
>>> list1
[1, 1, 1, 1, 2, 3, 4, 5]
用 sort(reverse = True) 进行翻转
>>> list1.sort(reverse = True)
>>> list1
[5, 4, 3, 2, 1, 1, 1, 1]
课后题
0)说出下列输出什么?
>>> old = [1, 2, 3, 4, 5]
>>> new = old
>>> old = [6]
>>> print(new)
答:[1,2,3,4,5]
和列表不同,普通变量的复制直接使用赋值符号 ‘=’
列表的复制需要 list2 = list1[:]
如果列表使用赋值符号复制 list2 = list1 相当于 list2 和 list1 指向同个列表。如果list1 改变,list2 也变
1)把 list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]‘小甲鱼’改为 ‘小鱿鱼’
答:
>>> list1[1][2][0] = '小鱿鱼'
>>> list1
[1, [1, 2, ['小鱿鱼']], 3, 5, 8, 13, 18]
2)copy()使用
>>> list7 = list1.copy()
>>> list7
[1, [1, 2, ['小鱿鱼']], 3, 5, 8, 13, 18]
3)clear()使用
>>> list7.clear()
>>> list7
[]
4)列表推导式 list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0] 相当于;
答:
list1 = []
for x in range(10):
for y in range(10):
if x % 2 == 0:
if y % 2 != 0:
list1.append((x,y))
编程题
0)
list1 = ['1.Just do It','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
list2 = ['4.阿迪达斯','2.李宁','3.鱼c工作室','1.耐克']
list3 = [list2[y]+":"+list1[x-1][2:] for x in range(1,5) for y in range(4) if str(x) in list2[y]]
'''
for x in range(1,5):
for y in range(4):
if str(x) in list2[y]:
print(list2[y]+":"+list1[x-1][2:])
'''
小结:
0)最后的编程中,虽然结果对了,不过有一种字符串的使用方法没能想起来;
即:字符串中的字母直接取值
>>> print(list3)
['1.耐克:Just do It', '2.李宁:一切皆有可能', '3.鱼c工作室:让编程改变世界', '4.阿迪达斯:Impossible is Nothing']
>>>
>>>
>>> list3[0][0]
'1'
>>> list3[0][4]
':'
>>> list3[0][3]
'克'
或者:
>>> string = 'huanghaozz'
>>> string[3]
'n'
>>> string[5]
'h'
0)比较操作符
列表中,只有一个元素,直接比较列表元素大小;
>>> list1 = [123]
>>> list2 = [234]
>>> list1>list2
False
列表中有多个元素,以第一个元素的比较结果为主
>>> list = [123,456]
>>> list1 = [123,456]
>>> list2 = [234,123]
>>> list1 >list2
False
1)逻辑操作符
>>> list1 < list2 and list1 == list3
True
2)连接操作符
>>> list4 = list1 +list2
>>> list4
[123, 456, 234, 123]
3)重复操作符
>>> list3 * 2
[123, 456, 123, 456]
>>> list3 * 5
[123, 456, 123, 456, 123, 456, 123, 456, 123, 456]
没有赋值的时候 list3 不改变
>>> list3
[123, 456]
可以赋值给另一个列表
>>> list5 = list3 * 2
>>> list5
[123, 456, 123, 456]
可以自己赋值给自己
>>> list3 *= 2
>>> list3
[123, 456, 123, 456]
4)成员关系操作符
>>> 123 in list3
True
>>> 'haha' not in list3
True
>>>
>>> 123 not in list3
False
in 操作符只能查询列表中的一层
表中表就查不出
>>> list5 = [123,['hh'],456]
>>> list5
[123, ['hh'], 456]
>>> 'hh' in list5
False
这样才能找到
>>> 'hh' in list5[1]
True
如果列表中的列表不止一个元素,其访问和而为数组类似
>>> list5 = [123,['hh','oo'],456]
>>> 'oo' in list5[1][1]
True
5)列表的小伙伴们:
使用 dir(list) 查询
6)count();
如 1 在 list1 中出现的次数
>>> list1=[1,1,1,1,2,3,4,5]
>>> list1.count(1)
4
7)index()
查询 list1 中,1 的起始位置
>>> list1=[1,1,1,1,2,3,4,5]
>>> list1.index(1)
0
查询 list1 中,2 到 5 位置上 1 的个数
>>> list1.index(1,2,5)
2
查询 list1 中,3 是否在下标为 5 的位置上
>>> list1.index(3,5)
5
如果不在
>>> list1.index(3,6)
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
list1.index(3,6)
ValueError: 3 is not in list
8)reverse() 反转
>>> list1.reverse()
>>> list1
9)sort(),排序
>>> list1.sort()
>>> list1
[1, 1, 1, 1, 2, 3, 4, 5]
用 sort(reverse = True) 进行翻转
>>> list1.sort(reverse = True)
>>> list1
[5, 4, 3, 2, 1, 1, 1, 1]
课后题
0)说出下列输出什么?
>>> old = [1, 2, 3, 4, 5]
>>> new = old
>>> old = [6]
>>> print(new)
答:[1,2,3,4,5]
和列表不同,普通变量的复制直接使用赋值符号 ‘=’
列表的复制需要 list2 = list1[:]
如果列表使用赋值符号复制 list2 = list1 相当于 list2 和 list1 指向同个列表。如果list1 改变,list2 也变
1)把 list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]‘小甲鱼’改为 ‘小鱿鱼’
答:
>>> list1[1][2][0] = '小鱿鱼'
>>> list1
[1, [1, 2, ['小鱿鱼']], 3, 5, 8, 13, 18]
2)copy()使用
>>> list7 = list1.copy()
>>> list7
[1, [1, 2, ['小鱿鱼']], 3, 5, 8, 13, 18]
3)clear()使用
>>> list7.clear()
>>> list7
[]
4)列表推导式 list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0] 相当于;
答:
list1 = []
for x in range(10):
for y in range(10):
if x % 2 == 0:
if y % 2 != 0:
list1.append((x,y))
编程题
0)
list1 = ['1.Just do It','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
list2 = ['4.阿迪达斯','2.李宁','3.鱼c工作室','1.耐克']
list3 = [list2[y]+":"+list1[x-1][2:] for x in range(1,5) for y in range(4) if str(x) in list2[y]]
'''
for x in range(1,5):
for y in range(4):
if str(x) in list2[y]:
print(list2[y]+":"+list1[x-1][2:])
'''
小结:
0)最后的编程中,虽然结果对了,不过有一种字符串的使用方法没能想起来;
即:字符串中的字母直接取值
>>> print(list3)
['1.耐克:Just do It', '2.李宁:一切皆有可能', '3.鱼c工作室:让编程改变世界', '4.阿迪达斯:Impossible is Nothing']
>>>
>>>
>>> list3[0][0]
'1'
>>> list3[0][4]
':'
>>> list3[0][3]
'克'
或者:
>>> string = 'huanghaozz'
>>> string[3]
'n'
>>> string[5]
'h'