2016-01-26 10 views

risposta

33

Usa str.join() in una list comprehension (funziona sia in Python 2.xe 3.x):

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

Utilizzando reduce è un'altra opzione:

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

In Python 2:

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

In Python 3 (Grazie per il suggerimento di eugene):

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

Un'opzione molto inefficiente, però. – chepner

+3

E in Python3 avresti bisogno di 'from functools import reduce'. –

+0

@eugeney, appena modificato, grazie. – Quinn

22

Si potrebbe mappare str.join ad ogni tuple in a:

Python 2:

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

In Python 3, map è un oggetto iterabile così avresti bisogno di materializzarsi come una list :

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

Restituisce un oggetto mappa sulla mia macchina. – vaultah

+0

@vaultah stava modificando come hai commentato. –