簡體   English   中英

元組的郵編列表

[英]Zip lists of tuples

我正在處理文件中的數據,並且已經用信息壓縮了每一列,但是現在我想合並其他文件中的信息(我也壓縮了信息),而且我不知道如何解壓縮並在一起。

編輯:我有幾個zip對象:

l1 = [('a', 'b'), ('c', 'd')] # list(zippedl1)
l2 = [('e', 'f'), ('g', 'h')] # list(zippedl1)
l3 = [('i', 'j'), ('k', 'm')] # list(zippedl1)

我想像這樣解壓縮:

unzipped = [('a', 'c', 'e', 'g', 'i', 'k'), ('b', 'd', 'f', 'h', 'j', 'm')]

我不希望僅出於內存原因將壓縮的結構轉換為列表。 我搜索了,但沒有找到可以幫助我的東西。 希望你能幫助我! [對不起我的英語不好]

您需要先連接列表:

>>> l1 = [('a', 'b'), ('c', 'd')]
>>> l2 = [('e', 'f'), ('g', 'h')]
>>> l3 = [('i', 'j'), ('k', 'm')]
>>> zip(*(l1 + l2 + l3))
[('a', 'c', 'e', 'g', 'i', 'k'), ('b', 'd', 'f', 'h', 'j', 'm')]

我相信您想拉開一個未包裝的鏈條

# Leaving these as zip objects as per your edit
l1 = zip(('a', 'c'), ('b', 'd'))
l2 = zip(('e', 'g'), ('f', 'h'))
l3 = zip(('i', 'k'), ('j', 'm'))

unzipped = [('a', 'c', 'e', 'g', 'i', 'k'), ('b', 'd', 'f', 'h', 'j', 'm')]

你可以簡單地做

from itertools import chain
result = list(zip(*chain(l1, l2, l3)))

# You can also skip list creation if all you need to do is iterate over result:
# for x in zip(chain(l1, l2, l3)):
#     print(x)

print(result)
print(result == unzipped)

打印:

[('a', 'c', 'e', 'g', 'i', 'k'), ('b', 'd', 'f', 'h', 'j', 'm')]
True

暫無
暫無

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

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