2011-06-22 47 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']'。 –