Ответ 1
Используйте str.join()
в понимании списка (работает как в Python 2.x, так и 3.x):
>>> a = [('A', 'V', 'C'), ('A', 'D', 'D')]
>>> [''.join(x) for x in a]
['AVC', 'ADD']
У меня есть список, который выглядит примерно так:
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']
Вы можете сопоставить str.join
с каждым tuple
в a
:
Python 2:
>>> map(''.join, a)
['AVC', 'ADD']
В Python 3, map
- это итерируемый объект, поэтому вам нужно материализовать его как list
:
>>> list(map(''.join, a))
['AVC', 'ADD']
Использование reduce
- это еще одна опция:
>>> a = [('A','V','C'), ('A','D','D')]
В Python 2:
>>> [reduce(lambda x, y: x + y , i) for i in a]
['AVC', 'ADD']
В Python 3 (спасибо за предложение Евгения):
>>> from functools import reduce
>>> [reduce(lambda x, y: x + y , i) for i in a]
['AVC', 'ADD']