列表类型
1 作用
按位置存放多个值
2 定义
l = [1, 1.2, 'a'] # l=list([1, 1.2, 'a'])
3 类型转换
但凡能够被for循环遍历的类型都可以当做参数传给list()转成列表
res = list('hello')
print(res)
res = list({'k1': 111, 'k2': 222, 'k3': 333})
print(res)
4 内置方法
4.1 按照索引存取值(正向存取+反向存取)
即可以取也可以改
l = [111, 'zhoushun', 'hello']
# 正向取
print(l[0])
# 反向取
print(l[-1])
# 可以取也可以改 :索引存在则修改对应的值
l[0]=222
print(l)
# 无论是取值操作还是赋值操作:索引不存在则报错
l[3] = 333
4.2 往列表里添加值
4.2.1 追加值
l = [111, 'zhoushun', 'hello']
l.append(333)
print(l)
4.2.2 插入值
l = [111, 'zhou', 'hello']
l.insert(2,'shun')
print(l)
4.2.3 extend实现两个列表合并
new_l = [1, 2, 3]
l = [111, 'zhoushun', 'hello']
# 代码实现
for item in new_l:
l.append(item)
print(l)
# extend实现上述代码
l.extend(new_l)
l.extend('abc') # [111, 'zhoushun', 'hello', 'a', 'b', 'c']
print(l)
4.3 删除
4.3.1 方式一:del
通用的删除方法,只是单纯的删除,没有返回值
l = [111, 'zhoushun', 'hello']
# x = del l[1] # 抛出异常,不支持赋值语法
del l[1]
print(l) # [111, 'hello']
4.3.2 方式二:pop()
pop()根据索引删除,会返回删除的值
l = [111, 'zhoushun', 'hello']
l.pop() # 不指定索引默认删除最后一个
l.pop()
print(l)
res = l.pop(1)
print(res)
4.3.3 方式二:remove()
remove()根据元素删除,返回None
l = [111, 'zhoushun', 'hello']
l.remove('zhoushun')
print(l)
4.4 切片(顾头不顾尾,步长)
l = [111, 'zhoushun', 'hello', 'a', 'b', 'c', 'd']
print(l[0:3])
print(l[0:6:2]) # 0 2 4
new_l = l[:] # 切片等同于拷贝行为,而且相当于浅copy
print(new_l)
print(l[::-1])
4.5 长度len
print(len([1,2,4]))
4.6 成员运算in和not in
print('aaa' in ['aaa', 1, 2])
print('aaa' not in ['aaa', 1, 2])
4.7 循环
for x in [1,'aaa', 444]:
print(x)
5 需要掌握的操作
5.1 count()
l = [1, 'aaa', 'bbb', 'aaa', 'aaa']
print(l.count('aaa'))
5.2 index()
l = [1, 'aaa', 'bbb', 'aaa', 'aaa']
print(l.index('aaa')) # 找到第一次出现时的索引
print(l.index('aaaaa')) # 找不到报错
5.3 clear()
l = [1, 'aaa', 'bbb', 'aaa', 'aaa']
l.clear()
print(l)
5.4 reverse()
不是排序,就是把列表倒置
l = [1, 'zhou', 'shun', '18']
l.reverse()
print(l)
5.5 sort()
列表内的元素必须是同种类型才可以排序
l = [11, 3, 433, 5456, -34]
# l.sort() # 默认从小到大排,称之为升序
l.sort(reverse=True) # 从大到小排,设置为降序
print(l)
6 补充
队列:first in first out,先进先出
l = []
# 入队操作
l.append('first')
l.append('second')
l.append('third')
print(l)
# 出队操作
print(l.pop(0))
print(l.pop(0))
print(l.pop(0))
堆栈:last in first out,后进先出
l = []
# 入栈操作
l.append('first')
l.append('second')
l.append('third')
print(l)
#出栈操作
print(l.pop())
print(l.pop())
print(l.pop())