Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.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_List_Python 2.7_Alternation - Fatal编程技术网

Python以交替方式组合两个长度不等的列表

Python以交替方式组合两个长度不等的列表,python,list,python-2.7,alternation,Python,List,Python 2.7,Alternation,我有两个列表,我想以交替的方式组合它们,直到一个列表用完,然后我想继续添加较长列表中的元素 阿卡 与此问题()类似,除了在这些列表中,在第一个列表用完后,列表将停止组合:(.您可能对此感兴趣: 例如: >>> from itertools import cycle, islice >>> list1 = list("abc") >>> list2 = list("uvwxyz") >>> list(roundrobin(li

我有两个列表,我想以交替的方式组合它们,直到一个列表用完,然后我想继续添加较长列表中的元素

阿卡


与此问题()类似,除了在这些列表中,在第一个列表用完后,列表将停止组合:(.

您可能对此感兴趣:

例如:

>>> from itertools import cycle, islice
>>> list1 = list("abc")
>>> list2 = list("uvwxyz")
>>> list(roundrobin(list1, list2))
['a', 'u', 'b', 'v', 'c', 'w', 'x', 'y', 'z']

您可能对此感兴趣:

例如:

>>> from itertools import cycle, islice
>>> list1 = list("abc")
>>> list2 = list("uvwxyz")
>>> list(roundrobin(list1, list2))
['a', 'u', 'b', 'v', 'c', 'w', 'x', 'y', 'z']

以下是来自优秀网站的简单版本:


以下是来自优秀网站的简单版本:

我的解决方案:

result = [i for sub in zip(list1, list2) for i in sub]
编辑:问题指定较长的列表应在较短列表的末尾继续,而此答案不这样做。

我的解决方案:

result = [i for sub in zip(list1, list2) for i in sub]

编辑:问题指定较长的列表应在较短列表的末尾继续,而此答案不这样做。

您可以使用普通的
映射和列表理解:

>>> [x for t in map(None, a, b) for x in t if x]
['a', 'v', 'b', 'w', 'c', 'x', 'y', 'z']

您可以使用普通的
map
和列表理解:

>>> [x for t in map(None, a, b) for x in t if x]
['a', 'v', 'b', 'w', 'c', 'x', 'y', 'z']

这只适用于Python2。这对Python3会有什么变化?找到了这个配方的Python3版本,比我快:)这只对Python2有效。Python3会有什么变化?找到了这个配方的Python3版本这正是OP提到的问题-
zip
截断了较长的列表。是的,你是对的,他说“这些”时我误解了我认为他指的是他目前的问题。这正是OP提到的问题-
zip
截短了较长的列表。是的,你是对的,当他说“这些”时我误解了,以为他指的是他目前的问题。