私はこのようになり、リストがあります:マルチレベルリストをPythonの文字列リストに変換するにはどうすればよいですか?
a = [('A', 'V', 'C'), ('A', 'D', 'D')]
をそして私はにa
を変換し、別のリストを作成したい:
['AVC', 'ADD']
を?リスト内包で
私はこのようになり、リストがあります:マルチレベルリストをPythonの文字列リストに変換するにはどうすればよいですか?
a = [('A', 'V', 'C'), ('A', 'D', 'D')]
をそして私はにa
を変換し、別のリストを作成したい:
['AVC', 'ADD']
を?リスト内包で
使用str.join()
(Pythonの2.xと3.xの両方で動作します):
>>> a = [('A', 'V', 'C'), ('A', 'D', 'D')]
>>> [''.join(x) for x in a]
['AVC', 'ADD']
reduce
を使用する別のオプションです:Pythonの2で
>>> a = [('A','V','C'), ('A','D','D')]
:
>>> [reduce(lambda x, y: x + y , i) for i in a]
['AVC', 'ADD']
Python 3(ユージンの提案に感謝):
あなたがにstr.join
をマップすることができ
>>> from functools import reduce
>>> [reduce(lambda x, y: x + y , i) for i in a]
['AVC', 'ADD']
各tuple
a
中:
のPython 2:
は、Python 3では、map
は、あなたが
list
としてそれを具現化する必要があると思いますので、反復可能なオブジェクトである
>>> map(''.join, a)
['AVC', 'ADD']
:
>>> list(map(''.join, a))
['AVC', 'ADD']
マシン上のマップオブジェクトを返します。 – vaultah
@vaultahさんがあなたのコメントとして編集中でした。 –
しかし、非常に非効率なオプションです。 – chepner
そしてPython3では 'from functools import reduce'が必要です。 –
@eugeney、ただ編集しました、ありがとうございます。 – Quinn