2010-09-08 6 views
0

J'ai ceci:Python: Coupez une liste

Lt = [('ABC',), ('Abc',), ('xyz',), ('ABC',), ('Abc',)]

Je veux ceci:

Lt = ('Abc', 'Abc', 'xyz', 'ABC', 'abc')

supprimer le poste ra "(", ")" et "," .... Comment je fais ça.

Répondre

4
solution

:

r=zip(*Lt)[0] 
print Lt 
5

Est-ce une liste de chaînes ou de tuples? En supposant qu'ils sont tuples:

 

[t[0] for t in [('ABC',), ('Abc',), ('xyz',), ('ABC',), ('Abc',)]] 
 
+0

+1 Nice et élégant – helpermethod

+0

Pour la l'amour de l'apprentissage, cela s'appelle un "liste compre hension "et thy sont très efficaces et faciles à faire en Python! – jathanism

+0

ne fonctionne pas, thk – Merlin

0

une autre façon

a = tuple([''.join(x) for x in Lt]) 

>>> a 
('ABC', 'Abc', 'xyz', 'ABC', 'Abc') 
+0

Vous pouvez supprimer les crochets dans l'appel de 'tuple'. une expression de générateur suffit car 'tuple' le consommera. – aaronasterling

0

Voici une autre façon:

In [5]: tuple(map(operator.itemgetter(0), Lt)) 
Out[5]: ('ABC', 'Abc', 'xyz', 'ABC', 'Abc') 
+0

vraiment, c'est mieux mon montage? Ce vieux ..... – Merlin