簡體   English   中英

python:將兩個1D列表合並為一個1D列表

[英]python: Merge two 1D lists into one 1D list

我想合並兩個列表的真實含義:

>>> l1 = [1,2,3,4]
>>> l2 = [9,8,7,6]
>>> merged(l1, l2)
[1,9,2,8,3,7,4,6]

我可以輕松地:

>>> m = []
>>> for i1,i2 in zip(l1,l2):
      m.extend([i1,i2])
>>> m
[1,9,2,8,3,7,4,6]

但我想知道是否還有更優雅的東西?

ps:有成千上萬的問題聲稱要合並列表,但是我發現並沒有做到這一點-如果我迷失了真實的問題,我深表歉意!

[item for items in zip(l1, l2) for item in items]
# [1,9,2,8,3,7,4,6]

或者您可以像這樣使用itertools.chain

from itertools import chain
list(chain.from_iterable(zip(l1, l2)))
# [1,9,2,8,3,7,4,6]

使用zip和列表理解:

>>> l1 = [1,2,3,4]
>>> l2 = [9,8,7,6]
>>> [x for xs in zip(l1, l2) for x in xs]
[1, 9, 2, 8, 3, 7, 4, 6]

這個怎么樣:

>>> l1 = [1,2,3,4]
>>> l2 = [9,8,7,6]
>>> sum(zip(l1,l2),())
(1, 9, 2, 8, 3, 7, 4, 6)
>>>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM