在python中映射,将多个对象映射到列表中的每个对象

时间:2011-08-10 15:55:12

标签: python list-comprehension

  

可能重复:
  Making a flat list out of list of lists in Python

如何创建表单,例如[[1,2],[3,4]]或[(1,2),(3,4)] 清单[1,2,3,4]

list comprehension(或map,filter)似乎没有地图对象到多个其他对象。

像C#的LINQ中的SelectMany一样

4 个答案:

答案 0 :(得分:2)

标准库很酷:

>>> import itertools
>>> l = [[1,2],[3,4]]
>>> list(itertools.chain(*l))
[1, 2, 3, 4]

答案 1 :(得分:0)

你想要整理清单。

[y for x in [[1,2],[3,4]] for y in x]

答案 2 :(得分:0)

如果您知道它将完全是2级,您可以

[j for i in [[1,2],[3,4]] for j in i]

您在列表中使用i进行迭代,并在这些子列表上依次为i[1,2]提供[3,4]j。因此,这个表达式导致[1, 2, 3, 4]

答案 3 :(得分:0)

>>l=[1,2,3,4]
>>zip(l[:2:],l[1:][:2:])
[(1, 2), (2, 3)]

>>l=[(1, 2), (2, 3)]
>>sum(l,())
(1, 2, 2, 3)

这不仅仅是你需要的吗?