按索引将N个列表合并在一起

2024-10-01 00:34:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有4个列表,我希望它们像结果一样

['a', 'b', 'c', 'd']
['e', 'f', 'g']
['h', 'i']
['j', 'k', 'l', 'm', 'n']

result --> ['aehj'], ['bfik'], ['cgl'], ['dm'], ['n']

Tags: 列表dmresultcglaehjbfik
2条回答

在纯python中

lists = [
  ['a', 'b', 'c', 'd'],
  ['e', 'f', 'g'],
  ['h', 'i'],
  ['j', 'k', 'l', 'm', 'n'],
]
results = []
for i in range(0, max(map(len, lists))):
    result = list(map(lambda list: list[i] if i < len(list) else "", lists))
    results.append( "".join(result) )

print(results)
['aehj', 'bfik', 'cgl', 'dm', 'n']

可以将^{}''的填充值一起使用,如下所示

from itertools import zip_longest

a = ['a', 'b', 'c', 'd']
b = ['e', 'f', 'g']
c = ['h', 'i']
d = ['j', 'k', 'l', 'm', 'n']


result = [[''.join(i)] for i in zip_longest(a, b, c, d, fillvalue='')]
print(result)

将给予

[['aehj'], ['bfik'], ['cgl'], ['dm'], ['n']]

相关问题 更多 >