从列表中检索值的范围

问题描述 投票:0回答:4

我想知道我是否有这样的列表清单:

a = [[43,76],[8,3],[22,80],[71,9]]

如果我想检索最后3个子列表中的第二个值,即从索引1到3的第二个值将像这样:

a[1:3][1]:

3
80
9
python list data-retrieval
4个回答
0
投票

不,被评估为:

a[1:3][1]-> [[8, 3], [22, 80], [71, 9]][1]-> [22, 80]

您想要[x[1] for x in a[1:3]]

同样,如果您实际上需要后三个子列表,而不是第二至第四子列表,则应使用负片:a[-3:]。即使列表只能是4个长,也更清楚。


0
投票

您可以在此处使用负切片

print(*[x[1] for x in a[-3:]],sep='\n') #a[-3:] gives last 3 elements

0
投票

要检索最后3个子列表中的第二个值,代码如下所示:

[x[1] for x in a[-3:]]

请注意,即使输入列表的长度大于4,这也将起作用。例如:

>>> a = [[43,76],[8,3],[22,80],[71,9],[22,4]]
>>> [x[1] for x in a[-3:]]
[80, 9, 4]

让我知道是否有帮助


-1
投票

我的2c:

[print(x[1]) for x in a[-3:]]

3
80
9

Demo

© www.soinside.com 2019 - 2024. All rights reserved.