一. 作用:按位置存放多个值
二. 定义:[]内用逗号分开,可以放任意类型的多个值
三. 类型转换:但凡能被for循环遍历的类型,都可以当做参数传给list(),转成列表
res=list('hello')
print(res)
print(list({'k1':123,'k2':222}))
四. 列表内置方法
-----优先掌握-----
- 按索引存取值(正向存取、反向存取):既可以取,也可以改
l=[111,222,333]
# 正向取
print(l[0])
# 反向取
print(l[-1])
#可以取也可以改,索引存在则修改对应的值,无论是取还是改索引不存在则报错
l[0]=123
print(l)
- 切片(顾头不顾尾),切片等同于拷贝行为,而且相当于浅拷贝。
l = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(l[0:5]) # ['a', 'b', 'c', 'd', 'e']
print(l[0:5:2]) # ['a', 'c', 'e']
print(l[len(l):0:-1]) # ['g', 'f', 'e', 'd', 'c', 'b']
# 拷贝列表
l2 = l[:]
# 翻转拷贝
l3 = l[len(l):]
- 长度
print(len([1, 2, 3])) # 3
- 成员运算 in 和 not in
l = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print('a' in l) # True
print(1 in l) # False
- 往列表中加值
# 5.1 追加,append只能追加到列表末尾
l=[111,222,333]
l.append(4444)
print(l)
# 5.2 插入值
l=[111,222,333]
l.insert(0,'hello') #第一个参数为索引位置,第二个参数为要插入的对象
print(l)
# 5.3 往列表中追加另一个类表的值,extend中传入参数为可迭代对象,即可被for循环使用的值。
new_l = [1, 2, 3]
l = [111, 222, 333]
l.extend(new_l)
print(l)
- 删除
# 6.1 del 通用删除方法,没有返回值,只是单纯的删除,不支持赋值语法
l = [111, 222, 333]
del l[0] # 删除列表中元素
print(l)
del l #删除列表
# 6.2 pop 根据索引删除,传入删除为列表索引,不指定索引默认删除最后一个,返回被删除的值
l = [111, 222, 333]
res=l.pop()
print(l)
print(res)
# 6.3 remove 根据元素删除,返回值为None
l = [111, 222, 333]
l.remove(111)
print(l)
- 循环
l = [111, 222, 333]
for x in l:
print(x)
-----需要掌握-----
l = [111, 222, 333, 111, 111, 222, 3333, 111]
# l.count(),统计元素出现次数
print(l.count(111)) # 4
# l.index(),查找元素对应的索引,默认情况下从左到右找到一个对应的元素,找不到则报错
print(l.index(111)) # 0
# l.clear(),清除列表中所有的元素
l.clear()
print(l) # []
# l.reverse(),将列表翻转
l.reverse()
print(l) #[111, 3333, 222, 111, 111, 333, 222, 111]
# l.sort(),给列表排序,默认从小到大排(升序),设置reverse=True时为降序。列表内元素必须是同种元素,数字和字符串不能混合使用。
l = [1, 2, 5, 3.2, -1]
l.sort() # 从小到大排
print(l) # [-1, 1, 2, 3.2, 5]
l.sort(reverse=True) # 从大到小排
print(l) # [5, 3.2, 2, 1, -1]
l = ['a', 'e', 'c']
l.sort()
print(l) # ['a', 'c', 'e']
-----补充-----
1、队列,FIFO,先进先出
l = []
# 入队操作
l.append(111)
l.append(222)
l.append(333)
# 出队操作
print(l.pop(0)) # 111
print(l.pop(0)) # 222
print(l.pop(0)) # 333
2、堆栈,LIFO,后进先出
l = []
# 入栈操作
l.append(111)
l.append(222)
l.append(333)
# 出栈操作
print(l.pop()) # 333
print(l.pop()) # 222
print(l.pop()) # 111