笔记
列表:
异构性:可以包含不同种类、任意类型的对象,甚至可以嵌套列表;
有序性:列表里装的元素都是有顺序的,可以按照位置序号获取单个元素,也可以用分片的方法来进行多个连续元素的获取
列表的大小和内容可以随意改变,在插入、删除、修改列表元素时,不需要建立一份新的列表拷贝,而是在原来的内存地址上直接修改列表对象
列表增加元素方法
L=[1,2,3,4]
L.append(5) append方法只能在尾部加入
print(L)[1,2,3,4,5]
L=[1,2,3,4]
L.insert(1,10) insert方法可在任意位置加入
print(L)[1,10,2,3,4]
L=[1,2,3,4]
L.extend([11,22,33]) extend方法则可以在尾部一次性加入多个元素
print(L)[1,2,3,4,11,22,33]
列表删除元素方法
最简单直接的,用remove方法,传入指定要删除的对象,注意:它也是在原列表上就地删除,返回值为None
L1=['aa','bb','cc']L1.remove('aa')print(L1)['bb','cc']
这里注意,还有一个内置方法del,它额外的功能是可以删除列表中的一个分片
delL1[1:3]
还有一个pop方法,它在末端删除一个元素,并可以将删除的元素作为返回值返回给调用者
L1=[1,2,3]print(L1.pop())#末端删除一个元素,弹出删除的值print(L1)3[1,2]
分片赋值
L=[4,5,6,7,8,9]
L[1:3]=['aa','bb','cc','dd']
print(L)
[4,'aa','bb','cc','dd',7,8,9]
本地排序 sort /reverse
L=[1,5,3,8,3,2,10]
L.sort()
print(L)
L.reverse()
print(L)
[1,2,3,3,5,8,10]
[10,8,5,3,3,2,1]
字典
生成字典的方法
第一种方法:初始为空字典,动态填充新的键和值
D={}
D['name']='Bob'
D['job']='dev'
print(D)
{'name':'Bob','job':'dev'}
重点是第二种方法,用列表动态生成字典。
key_list=['a','b','c']
value_list=[11,22,33]
D=dict(zip(key_list,value_list))
print(D){'a':11,'c':33,'b':22}
第三种方法,用键值对元组组成的列表构造字典。(元组我们后面要讲,就是这个圆括号)
D=dict([('aa',11),('bb',22),('cc',33)])
print(D)
{'cc':33,'aa':11,'bb':22}
合并两个字典
D1={'a':1,'b':2,'c':3}
D2={'c':8,'d':9}
D1.update(D2)
print(D1)
{'c':8,'b':2,'a':1,'d':9}
一次性获取包含所有键、值的列表:
D={'a':11,'b':22,'c':33,'d':44,'e':55}
print(list(D.keys()))['b','a','d','e','c']
D={'a':11,'b':22,'c':33,'d':44,'e':55}
print(list(D.values()))
[11,33,44,55,22]
D={'a':11,'b':22,'c':33,'d':44,'e':55}
print(list(D.items()))
[('d',44),('a',11),('c',33),('e',55),('b',22)]
字典的删除和排序 del和pop
D={'a':11,'b':22,'c':33,'d':44,'e':55}
delD['a']print(D)
{'b':22,'c':33,'e':55,'d':44}
pop方法是在删除指定键对应的元素的同时,返回这个键所对应的值
D={'a':11,'b':22,'c':33,'d':44,'e':55}
print(D.pop('a'))print(D)11
{'b':22,'e':55,'d':44,'c':33}
对键进行排序,他返回一个排好序的键的列表
D={'a':11,'b':22,'c':33,'d':44,'e':55}
print(sorted(D))print(sorted(D.keys()))
['a','b','c','d','e']['a','b','c','d','e']