我有一个看起来像这样的列表:
a = [('A', 'V', 'C'), ('A', 'D', 'D')]
Run Code Online (Sandbox Code Playgroud)
我想创建另一个转换a为:
['AVC', 'ADD']
Run Code Online (Sandbox Code Playgroud)
我将如何继续这样做?
Eug*_*ash 33
使用str.join()列表中的理解(工作在Python 2.x和3.x两者):
>>> a = [('A', 'V', 'C'), ('A', 'D', 'D')]
>>> [''.join(x) for x in a]
['AVC', 'ADD']
Run Code Online (Sandbox Code Playgroud)
Pet*_*ood 22
你可以映射str.join到每个tuple在a:
Python 2:
>>> map(''.join, a)
['AVC', 'ADD']
Run Code Online (Sandbox Code Playgroud)
在Python 3中,map是一个可迭代的对象,因此您需要将其实现为list:
>>> list(map(''.join, a))
['AVC', 'ADD']
Run Code Online (Sandbox Code Playgroud)
使用reduce是另一种选择:
>>> a = [('A','V','C'), ('A','D','D')]
Run Code Online (Sandbox Code Playgroud)
在Python 2中:
>>> [reduce(lambda x, y: x + y , i) for i in a]
['AVC', 'ADD']
Run Code Online (Sandbox Code Playgroud)
在Python 3中(感谢eugene的建议):
>>> from functools import reduce
>>> [reduce(lambda x, y: x + y , i) for i in a]
['AVC', 'ADD']
Run Code Online (Sandbox Code Playgroud)