Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中连接集合_Python_Collections_Concatenation_Itertools_Flatten - Fatal编程技术网

在Python中连接集合

在Python中连接集合,python,collections,concatenation,itertools,flatten,Python,Collections,Concatenation,Itertools,Flatten,itertools.chain被称为转换chain('ABC','DEF')-->A B C D E F。然而,我看到了这一点 >>> Set(itertools.chain([(1,2,3),(4,5,6)])) Set([(4, 5, 6), (1, 2, 3)]) 我发现没有任何层次结构受到影响。类似地,list(itertools.chain([[1,2,3],[4,5,6]])也会对列表产生影响。但我看不出我的情况会变平 >>> list(iter

itertools.chain
被称为转换
chain('ABC','DEF')-->A B C D E F
。然而,我看到了这一点

>>> Set(itertools.chain([(1,2,3),(4,5,6)]))
Set([(4, 5, 6), (1, 2, 3)])
我发现没有任何层次结构受到影响。类似地,
list(itertools.chain([[1,2,3],[4,5,6]])
也会对列表产生影响。但我看不出我的情况会变平

>>> list(itertools.chain([[1,2,3],[4,5,6]]))
[[1, 2, 3], [4, 5, 6]]

到底发生了什么事?

第一个参数是一个iterables(元组)列表,而不是。您可以使用
chain.from\u iterable()
将列表展平:

>>> from itertools import chain
>>> list(chain.from_iterable([(1,2,3),(4,5,6)]))
[1, 2, 3, 4, 5, 6]
到底怎么回事

你误读了

答案是这样的:

merged = list(itertools.chain(*list2d))
请注意星号(或“splat”)运算符的使用

在你的问题中,没有这样的运营商:

>>> list(itertools.chain([[1,2,3],[4,5,6]]))  
[[1, 2, 3], [4, 5, 6]]
要理解您引用的答案,请尝试以下方法:

>>> list(itertools.chain(*[[1,2,3],[4,5,6]]))
[1, 2, 3, 4, 5, 6]
这相当于拆下最外层的支架:

>>> list(itertools.chain([1,2,3],[4,5,6]))
[1, 2, 3, 4, 5, 6]