2

我正在处理列表列表

输入:

x = [['a','a','a'],['b','b','b'],['c','c','c'],['d','d','d']]

并正在寻找输出:

s = ['a_b_c_d','a_b_c_d','a_b_c_d']

请让我知道如何使用列表理解来做到这一点。

4

2 回答 2

12
>>> x = [['a','a','a'],['b','b','b'],['c','c','c'],['d','d','d']]
>>> map('_'.join, zip(*x))
['a_b_c_d', 'a_b_c_d', 'a_b_c_d']

……虽然@aix 的列表理解更易于列表理解。

于 2012-05-02T12:45:43.427 回答
11
In [6]: x = [['a','a','a'],['b','b','b'],['c','c','c'],['d','d','d']]

In [7]: ['_'.join(s) for s in zip(*x)]
Out[7]: ['a_b_c_d', 'a_b_c_d', 'a_b_c_d']

根据要求,这使用列表推导。请参阅@eumiro 的答案,了解map()我认为同样好的基于 - 的解决方案。

于 2012-05-02T12:45:34.517 回答