【python 列表裡的列表】列表的扁平化
阿新 • • 發佈:2018-11-03
目標:列表含有子列表展開成一個列表,列表的扁平化
如:
[['智利', '葡萄牙', '德國']]
轉換為
['智利', '葡萄牙', '德國']
# 程式碼實現
k1=[['智利', '葡萄牙', '德國']]
k2 = sum(k1, [])
print(k2)
元素都為列表: listA = [['a'], ['b'], ['c', 'd']] 展開成listA1 = ['a', 'b', 'c', 'd'] 命令: listA1 = sum(listA, []) 因為sum第二個引數的預設值是0, 0不能和列表相加,所以需要加入引數[] 元素包含str, 列表等型別: 此時sum方法就不行了。 listB = ['a', ['b'], ['c', 'd']] 展開成listB1 = ['a', 'b', 'c', 'd'] 命令: listB1 = [x for j in listB for x in j] In [1]: a=[[1,2,3],[4,5,6],[7,8,9]] In [2]: sum(a,[]) Out[2]: [1, 2, 3, 4, 5, 6, 7, 8, 9] In [1]: from functools import reduce In [2]: a=[[1,2,3],[4,5,],[6]] In [3]: a=reduce(lambda x,y:x+y,a) In [4]: a Out[4]: [1, 2, 3, 4, 5, 6]