2011-06-22 87 views
1

我的元組這樣的名單:Python中,處理列表

lst = [(10, u'1.15', u'1.15'), (5, 0, u'1.875'), (3, u'2.28', u'2.28')] 

,我想獲得新的只有第二和第三個元素的每個元組的,這不等於0,換句話說,我需要這樣的東西:

new_lst = [u'1.15', u'1.15',u'1.875', u'2.28', u'2.28'] 

感謝您的回答。

回答

4
new_lst = [x for t in lst for x in t[1:] if x != 0] 
2
>>> [x for y in lst for x in y[1:3] if x] 
[u'1.15', u'1.15', u'1.875', u'2.28', u'2.28'] 
0
>>> L = [(10, u'1.15', u'1.15'), (5, 0, u'1.875'), (3, u'2.28', u'2.28')] 
>>> answer = [] 
>>> for tup in L: 
...  answer.extend([i for i in tup[1:] if i]) 
...  
>>> answer 
[u'1.15', u'1.15', u'1.875', u'2.28', u'2.28'] 

希望這有助於

+1

奇怪 - 這看起來就像你在交互式解釋鍵入它,但你顯然沒有,因爲結果是不正確。我很好奇這是怎麼發生的:) –

+0

這正是解釋者給我的。你怎麼建議這是錯誤的? – inspectorG4dget

+2

對我來說,它給出了'[u'1.15',u'1.15',0,u'1.875',u'2.28',u'2.28']'。 –