2015-07-03 67 views
0

所以我想在列表中检索列表元素的某些值而不必循环。例如,如果我想从变量消息的第二个元素中检索值“no”,我该怎么做。如何访问列表中的列表元素?

message=[[0," "],[1,"yes","no","maybe"]] 

我知道消息[1]会给我:

[1,"yes","no","maybe"] 

另外,我也知道这样一个事实,我可以邮件的存储值[1]到一个新的变量并使用上述技术访问该值:

list=message[1] 
print (list[2]) 

不过,我想知道是否有一个更清洁,简单的方法,我不知道的:

+4

'消息[1] [2]'可能是你在找什么。 – Loocid

+0

https://en.wikipedia.org/wiki/RTFM – IanAuld

回答

5
>>> message=[[0," "],[1,"yes","no","maybe"]] 
>>> message[1][2] 
'no' 
>>> 
0

从概念上思考它。

您已经指出,你知道的消息[1]返回

[1,"yes","no","maybe"] 

这本身就是另一个列表。

由于您知道如何从列表中选择元素,所以它是完全相同的过程。您只需使用另一组括号和元素的位置选择第二个返回列表中的项目。

既然你问:

>>> message[1][2] 

是你在找什么。

它在本质上是一句话:

>>> [1,"yes","no","maybe"][2] 

这可以直到你到达这不是一个列表或字典中的一个元素被不断扩大。

0

我喜欢operator.itemgetter

>>> import operator 
>>> one = operator.itemgetter(1) 
>>> two = operator.itemgetter(2) 
>>> message=[[0," "],[1,"yes","no","maybe"]] 
>>> two(one(message)) 
'no' 
>>>