Python 多重列表解析裡for的順序

2021-07-05 04:23:48 字數 840 閱讀 3608

python 的列表解析list comprehension能讓語言更優雅,更可讀。多重列表解析可以將二維結構展平(flatten)。比如有乙個二維陣列字典:

>>> data = 

想要拉伸成一維的線性結構,可以用二重迴圈方法:

>>> new = 

>>> for key in data:

forvalue

in data[key]:

>>> new

[, , , , , , , , ]

>>>

用二維列表解析同樣可以實現,不過要注意,列表解析中的for 的順序和普通的寫法一致,而不是想象中的越外層越後面:

>>> [ for key in data for

value

in data[key]]

[, , , , , , , , ]

>>>

再看兩個二維列表的例子:

>>> data = [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

>>> new = [y for x in data for y in x]

>>> new

[0, 1, 2, 3, 4, 5, 6, 7, 8]

>>>

>>> data = [[0, 1, 2], [4, 5], [6]]

>>> new = [y for x in data for y in x]

>>> new

[0, 1, 2, 4, 5, 6]

>>>

python列表解析

列表解析是乙個列表對映出另乙個列表,它的基本形式是乙個方括號裡面包含乙個for語句對乙個iterable物件迭代 expression for target1 in iterable1 if condition1 for targetn in iterablen if conditionn 上面是列...

python 列表解析

m 1,2,3 4,5,6 7,8,9 col2 row 1 for row in m 獲取列表m的每個元素的第二個元素的值組成的列表 print col2 print row 1 1 for row in m 獲取列表m的每個元素的第二個元素 1的值組成的列表 print row 1 for ro...

Python列表解析

語法 1.expression for iter val in iterable 2.expression for iter val in iterable if cond expr l i 2 for i in range 1,11 print l 1,4,9,16,25,36,49,64,81,...