在给定索引列表的情况下访问字典的特定元素

时间:2018-08-16 13:45:54

标签: python python-2.7 dictionary

l希望根据其索引访问我字典的特定值。 当l仅给出一个索引或连续索引列表[0:30]时,其工作方式如下:

print(labels.keys()[0])
'IceDancing'
print(labels.keys()[0:3])
['IceDancing', 'IceDancing', 'HighJump']

但是,当我尝试按以下方式访问特定索引时:

indices=[3,4,45,8,56]
labels.keys()[indices]

l出现以下错误

*** TypeError:列表索引必须是整数,而不是列表

谢谢您的帮助

1 个答案:

答案 0 :(得分:0)

如前所述,Python 2.7中的字典没有顺序。使用dict.keys时,您不应假设任何特定或一致的顺序。

尽管如此,operator.itemgetter仍可以满足您的要求。这是一个简单的示例:

from operator import itemgetter

d = {i+10: i for i in range(100)}
idx = [3,4,45,8,56]

print itemgetter(*idx)(d.keys())

# (13, 14, 55, 18, 66)