Pyton第十一天

来源:互联网 发布:血伤的网络神话怎么看 编辑:程序博客网 时间:2024/05/11 16:42
列表的一些常用操作符




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 0