我正在尝试获取密钥的索引。假设我有:
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
这似乎不对,我会对此提出一些反馈。
答案 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]
获取相应的值