总结下列表List不熟的点
一、列表可以嵌套
类似二维数组,数组里面的数组
>>> spam=[['cat','dog'],['duck','cow']]
>>> spam=[0]
['cat','bat']
>>> spam=[0][1]
'cat'
二、可以从负数开始访问
负数表示从倒数第几个开始访问
下标-2则表示是 倒数第二个
>>> spam=[1,2,3,4,5]
>>> spam[-2]
4
三、切片获取子列表
下标中填spam[a:b]
表示获取从a到==b-1==的列表元素组成的新列表
[1, 2, 3, 4, 5]
#获取spam 下标1到3的元素构成的行列表
>>> spam[1:4]
[2, 3, 4]
>>> spam[1:2]
[2]
#前面下标大于后面下面输空列表
>>> spam[1:1]
[]
>>> spam[2:1]
[]
当省略前面的下标,默认切片从0开始
省略后面的下标,默认切片到列表的结尾
显然,都省略的时候切片形成的新列表还是原来的列表
>>> spam[:4]
[1, 2, 3, 4]
>>> spam[1:]
[2, 3, 4, 5]
>>> spam[:]
[1, 2, 3, 4, 5]
四、del删除列表里的元素
del语句可以删除列表里的某个元素,其他元素全部前移
>>> spam=[1,2,3,4,5]
>>> del spam[2]
>>> spam
[1, 2, 4, 5]
>>>
五、列表用于循环
类似 for i in range(x):
spam=[1,4,5,5,6]
for i in spam:
print(i)
#输出
1
4
5
5
6
六、字符串、元组、列表
(1)字符串和元组都是不可变类型,什么意思呢?就是我们不可以修改增加删除里面的值,但列表可以
(2)元组声明(a,b,c),当元组只有一个元素时,要在第一个元素后面加逗号(a,)
七、in 和not in操作符
元组,字符串和列表都可用
八、列表及类似列表类型的自带方法
(1)index(),根据value来找key
(2)append(),insert()
append()是直接在结尾附加
比较两种附加方法的区别
spam=spam+['a']
spam.append()
#以上两种都可完成向spam追加a的效果
#千万不要写成spam=spam.append()
#因为append的返回值是None,这样spam就会成空了
tips:类型自带方法大多是原地改变,会返回None类型,所以不用再写原来赋值的操作。
(3)sort() 按数字大小或ASCII码表排序,里面有可选填的参数,同时有数字和字符串时不能调用sort,因为无法比较
(4)copy模块
copy()是浅拷贝,是值传递,deepcopy()是深拷贝,是引用传递
列表和字典这种可变类型存储的都是引用