获取python词典/哈希表中的键索引

时间:2017-09-28 03:05:58

标签: python

我正在尝试获取密钥的索引。假设我有:

    func initiateRefreshData()-> Void {

        let refreshControl = UIRefreshControl()
        let title = NSLocalizedString("Refreshing sensor data...", comment: "Pull to refresh")
        refreshControl.attributedTitle = NSAttributedString(string: title)
        refreshControl.tintColor = UIColor.red
        refreshControl.addTarget(self, action: #selector(refreshOptions(sender:)),
                                 for: .valueChanged)
        self.main_collection_view.refreshControl = refreshControl
    }

    @objc private func refreshOptions(sender: UIRefreshControl) {
        getCustomGroupSensors()
        sender.endRefreshing()
    }

,键是名称,值是数字。我现在想要的是在这种情况下访问密钥的索引,密钥Jamie在索引0,Alan在1,Dwayne在2。

我不熟悉这个,因为我更习惯从普通列表中获取索引。

我是否会这样做:

Jamie: 3
Alan:  5
Dwayne: 4

这似乎不对,我会对此提出一些反馈。

2 个答案:

答案 0 :(得分:2)

如上所述,由于dict默认情况下不按顺序存储键值对,因此您需要转换为orderedDict,如下所示

>>> from collections import OrderedDict
>>> d = OrderedDict(d)
>>> d
OrderedDict([('Jamie', 3), ('Dwayne', 4), ('Alan', 5)])

之后将订购dict的密钥索引

>>> d.keys()
['Jamie', 'Dwayne', 'Alan']

然后你可以使用

>>> d.keys().index('Alan')
2

或枚举您正在尝试的方法。 (需要在那里添加迭代器)

>>> for i,value in enumerate(d.iteritems()):
    print i,value


0 ('Jamie', 3)
1 ('Dwayne', 4)
2 ('Alan', 5)
>>> 

在这里,您可以访问单个键,值为元组的0,1索引。

>>> for i,value in enumerate(d.iteritems()):
    print i, value[0], value[1]


0 Jamie 3
1 Dwayne 4
2 Alan 5
>>> 

答案 1 :(得分:0)

您在寻找

吗?
for key in dict:
    if key != ...

如果符合语句,您可以使用dict[key]获取相应的值