一、二维列表
列表的元素仍是一个列表
如:[['a', 'b', 'c', 'd'], [1, 2, 3, 4]]
二、创建二维列表
-
直接创建
示例:
arr = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
或者:
arr1 = [1, 1, 1]
arr2 = [2, 2, 2]
arr3 = [3, 3, 3]
arr = [arr1, arr2, arr3]
如上两种方式效果一样,创建了一个3*3的列表 -
for循环
示例:
arr = []
for i in range(3):
arr.append([])
for j in range(3):
arr[i].append(j)
print(arr)
运行结果:
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
三、查询列表
1.查询单个元素
arr[0]:列表的第一个元素
arr[0][0]:列表的第一个元素的第一个元素
2. 遍历列表
# 遍历列表的长度
for i in range(len(arr)):
for j in range(len(arr[i])):
print(arr[i][j])
# 或者如下的方式,遍历列表元素
for i in arr:
for j in i:
print(j)
四、zip()的用法
list(zip(arr1, arr2)): 将arr1 和arr2序号相同的元素组成一个元组,形成一个新的列表
list(zip(col)):加了符号*,可以理解为逆向
>>> arr1 = [1, 1, 1]
>>> arr2 = [2, 2, 2]
>>> arr3 = [3, 3, 3]
>>> col = list(zip(arr1, arr2))
>>> col
[(1, 2), (1, 2), (1, 2)]
>>> col1 = list(zip(arr1, arr2, arr3))
>>> col1
[(1, 2, 3), (1, 2, 3), (1, 2, 3)]
>>> list(zip(*col1))
[(1, 1, 1), (2, 2, 2), (3, 3, 3)]
>>> list(zip(*col))
[(1, 1, 1), (2, 2, 2)]
使用场景:例如,一个列表存储了多个选项的name,另一列表存储了对应的id
可以使用zip快速将name和id对应起来存放到新的list中;
>>> list_name = ['name1', 'name2', 'name3']
>>> list_id = [1, 2, 3]
>>> list_new = list(zip(list_name, list_id))
>>> list_new
[('name1', 1), ('name2', 2), ('name3', 3)]
反之,若已获得的是name和id对应起来的list,也可通过zip(*)快速拆分为单独的name和id
>>> list_new
[('name1', 1), ('name2', 2), ('name3', 3)]
>>> list_ni = list(zip(*list_new))
>>> list_ni
[('name1', 'name2', 'name3'), (1, 2, 3)]