一、列表(可变的序列)
1.列表定义,列表创建:
a = [1, 2.1, 'hello', Ture, [1, 2, 3], (1, 2, 3), print] 啥都能放
type(a) //返回结果为list
b = list('hello') //字符串转换成列表
c = list(10) 不可迭代的数据类型,会报错
x = []
y = list()
2.列表的删除,使用关键字del
del b
注意:del可以删除任意数据类型,不仅仅是列表
3.访问列表元素
一般用下标进行访问
a[0]
a[-1]('hello') //打印hello
print(a[2][1]) #打印e
a = [1, 2.1, 'hello', Ture, [1, 2, 3], (1, 2, 3), print]
id(a)
a[0] = 10
id(a) 地址不变,可变数据类型 ;
4.列表元素的添加 方法有这几种:+ += append() extend() insert()
(1)第一种
a = a + [10] //只能加列表,不能加字符串 __add__ 魔法方法
id(a) 地址变化,创建一个新的列表
(2)+=
a += [10]
id(a) //地址不变,对原来列表添加10 所以一般+=优于+
a += 'hello' //加减一个可迭代的序列或者一个列表 __iadd__
(3)append()
a.append(10) 运用append方法
也不会创建新列表
只能添加一个argument 例如:
a.append(20,30,40)
(4) extend方法 任意可迭代数据类型
a.extend([10,20,30])
a.extend('hello')
注意:append和extend在使用上有区别,append可以接受任意元素,而extend只能接受可迭代元素
(5)插入方法 insert 在索引号之前添加,id不变
a.insert(1,20)
a.insert(3,[1,2,3])
5.列表元素的删除
(1)del方法
b = list('hello')
del b
del a[0]
(2)pop方法 pop(index) 默认最后一个
a.pop(0)
"""
b = a[6]
del a[6]
"""
b = a.pop(6)
(3)remove(value)方法 删除遇到的第一个值
a.remove(10)
注意:可以判断是否在列表中,用in
10 in a
返回bool值 又有个取反的 not in
'll' in 'hello'
#返回ture
6.列表的其他方法
(1)clear方法
b = list('hello')
id(b)
b.clear()
id(b)
不用传参;clear只是将列表元素清空,内存还在;
(2)count方法:
a.count(20)
用于计数,看列表中有多少某元素
(3)index 返回某值的索引 (遇到的第一个元素索引)
a.index('h')
index(self, value, start=0, stop=9223372036854775807)
a.index('h', 6, 15) #前闭后开
7.列表元素的切片
x = [62, 24, 60, 82, 21, 75, 32, 19, 83]
print(x[0], x[1], x[2], )
print(x[0:3]) #打印前3个元素
print(x[0:90000]) #打印所有元素
print(x[0:]) 不写,默认切到最后
print(x[:4]) 前四个
print(x[:])
print(x[-4:])
#完整的切片,第三个数为步长
print(x[:6:2]) #步长为1可以省略
print(x[0:6:-1])
#得到空列表
#步长不能为0
#不是列表特有的,所有序列都有切片
x = 'hello, world'
x[:4]
切片列表快速赋值
a[-4:] = []
a[1:1] = [10,20,30,40,50]
a[1:6] = [100,200,300,400,500]