Py学习  »  Python

在Python中,只合并子列表,而不是将所有子列表合并到一个列表中

Oliver Pearson • 3 年前 • 1476 次点击  

谁能告诉我如何合并以下列表:

[[['a', 'b'], ['b', 'a'], ['c', 'c']], [['d', 'e'], ['e', 'd']]]

进入:

[['ab', 'ba', 'cc'], ['de', 'ed']] ?

非常感谢。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/128735
文章 [ 2 ]  |  最新文章 3 年前
BrokenBenchmark
Reply   •   1 楼
BrokenBenchmark    3 年前

两种方法:

  1. 使用 map() ''.join :
data = [[['a', 'b'], ['b', 'a'], ['c', 'c']], [['d', 'e'], ['e', 'd']]]
result = [list(map(''.join, item)) for item in data]
print(result)
  1. 使用列表理解:
data = [[['a', 'b'], ['b', 'a'], ['c', 'c']], [['d', 'e'], ['e', 'd']]]
result = [[''.join(item) for item in sublist] for sublist in data]
print(result)

这两种印刷品:

[['ab', 'ba', 'cc'], ['de', 'ed']]
mozway
Reply   •   2 楼
mozway    3 年前

IIUC,你需要在所有子列表上映射连接:

l = [[['a', 'b'], ['b', 'a'], ['c', 'c']], [['d', 'e'], ['e', 'd']]]

out = [list(map(''.join, x)) for x in l]

或者:

out = [[''.join(i) for i in x] for x in l

输出: [['ab', 'ba', 'cc'], ['de', 'ed']]