2013-11-08 6 views
-1

Привет, я только что начал с python и получил довольно nooby вопрос.Получить элементы из списка в python

У меня есть список, который выглядит следующим образом:

[(1.0, 'Test1'), (1,3 'Test2'), (1.4 'Test3')] 

Как я могу получить только «Test1 Test2 TEST3» как возвращение?

наилучшими пожеланиями

ответ

2
>>> L = [(1.0, 'Test1'), (1.3, 'Test2'), (1.4, 'Test3')] 
>>> [x[1] for x in L] 
['Test1', 'Test2', 'Test3'] 

>>> " ".join(x[1] for x in L) 
'Test1 Test2 Test3' 

Вы можете также использовать itemgetter(1), но методы выше, как правило, предпочтительнее

>>> from operator import itemgetter 
>>> " ".join(map(itemgetter(1), L)) 
'Test1 Test2 Test3' 
+0

Второй элемент в списке (не уверен, если это опечатка) является '(1,3«Test2»)', так что это даст вам «Test1 3 Test3» (на самом деле, это вызовет исключение, когда вы попытаетесь присоединиться к целому числу). – willy

+1

@willy, нет, в этом случае это SyntaxError в любом случае. –

+0

Мой плохой, не могу мозг сегодня, я читал это как '(1,3, 'Test2')' – willy

0

Просто пространство присоединения список понимание захватывая последний элемент каждого кортежа, или :

items = [(1.0, 'Test1'), (1,3 'Test2'), (1.4 'Test3')] 
    return " ".join([item[-1] for item in items]) 
0

Получить список ['Test1', 'Test2', 'Test3'] вы можете сделать:

list = [(1.0, 'Test1'), (1.3, 'Test2'), (1.4, 'Test3')] 
newlist = [] 
for (key, value) in list: 
    newlist.append(value) 

Тогда newlist будет ['Test1', 'Test2', 'Test3'] или просто

newlist = [value for (key, value) in list] 

Это использует кортеж Python, распаковка, чтобы получить второй элемент каждого кортежа в списке. См. http://docs.python.org/2/tutorial/datastructures.html#tuples-and-sequences для получения дополнительной информации о кортежах.

Вы можете создать строку 'Test1 Test2 Test3' используя ''.join другие ответы говоря:

' '.join(newlist) 
Смежные вопросы