¿Cómo transformo una lista de varios niveles en una lista de cadenas en Python?

Tengo una lista que se parece a esto:

a = [('A', 'V', 'C'), ('A', 'D', 'D')] 

Y quiero crear otra lista que transforme a en:

 ['AVC', 'ADD'] 

¿Cómo voy a hacer esto?

Use str.join() en una lista de comprensión (funciona en Python 2.xy 3.x):

 >>> a = [('A', 'V', 'C'), ('A', 'D', 'D')] >>> [''.join(x) for x in a] ['AVC', 'ADD'] 

Usted podría asignar str.join a cada tuple en a :

Python 2:

 >>> map(''.join, a) ['AVC', 'ADD'] 

En Python 3, map es un objeto iterable por lo que necesitarías materializarlo como una list :

 >>> list(map(''.join, a)) ['AVC', 'ADD'] 

Usar reduce es otra opción:

 >>> a = [('A','V','C'), ('A','D','D')] 

En Python 2:

 >>> [reduce(lambda x, y: x + y , i) for i in a] ['AVC', 'ADD'] 

En Python 3 (Gracias por la sugerencia de eugene):

 >>> from functools import reduce >>> [reduce(lambda x, y: x + y , i) for i in a] ['AVC', 'ADD']