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