使用推导式将Python列表的列表转化为一维列表
把这个循环变成一行的简洁写法,应该怎么写呢?
lst = [
[1,2,3],
[4,5,6],
[7,8,9],
[10,11,12]
]
all_records = []
for entry in lst:
all_records.extend(entry)
#[1, 2, 3, 3, 0, 1, 5, 2, 5, 10, 11]
当我这样写的时候
all_records = [entry for entry in lst]
它会给我这个结果
[[1, 2, 3], [3], [0, 1, 5], [2, 5, 10, 11]]
1 个回答
-1
你可以用下面这种简洁的写法来把二维列表变成一维列表。
lst = [[1,2,3],[4,5,6],[7,8,9]]
flat = [j for i in lst for j in i]
print(flat) # [1, 2, 3, 4, 5, 6, 7, 8, 9]