我想遍历这本字典词典。最后,我想要将每个字典中的值分开..例如,0.5 / 0.4,0.3 / 0.2和0.1 / 0.1以找到最大值,但我还没到达那里。任何有关迭代的帮助都将不胜感激。
#!/usr/bin/env python2
dict = {('a', 0.5): ('b', 0.4), ('c', 0.3): ("d", 0.2), ('e', 0.1): ('f', 0.1)}
for keys, values in dict:
print "key: %s" % keys
print "values: %f" % values
for keys1, values1 in dict[keys]:
print "key1: %s" % keys1
print "values1: %f" % values1
但是我收到错误:
键:a
值:0.500000
追溯(最近的呼叫最后):
文件“test.py”,第8行,in
对于keys1,dict [keys]中的values1:KeyError:'a'
答案 0 :(得分:3)
首先将变量dict
重命名为d
。
这不是字典词典。这是包含元组作为键和值的字典。
for k, v in d.items():
a = k[1]
b = v[1]
print(a/b)
答案 1 :(得分:2)
这里有一个简单的for循环:
In [1169]: for d in dict_:
...: print(d[-1], '/', dict_[d][-1])
...:
0.5 / 0.4
0.3 / 0.2
0.1 / 0.1
一些注意事项 -
您的键和值都是元组,因此请使用[-1]
索引每种情况下的最后一个元素
最好不要使用dict.items()
,因为它会在内存中创建一个dict副本以进行迭代
不要将dict
用作变量名称,它会影响内置dict
答案 2 :(得分:2)
dict = {('a', 0.5): ('b', 0.4), ('c', 0.3): ("d", 0.2), ('e', 0.1): ('f', 0.1)}
for key, value in dict.iteritems():
print "key=", key
print "value=",value
print "division=",key[1]/value[1]
key= ('a', 0.5)
value= ('b', 0.4)
division= 1.25
key= ('c', 0.3)
value= ('d', 0.2)
division= 1.5
key= ('e', 0.1)
value= ('f', 0.1)
division= 1.0
答案 3 :(得分:1)
迭代一个字典你需要调用函数“iteritems():”(在Python 2.7中)你可以在这里阅读更多关于它的信息
dicte = {('a', 0.5): ('b', 0.4), ('c', 0.3): ("d", 0.2), ('e', 0.1): ('f', 0.1)}
for keys, values in dicte.iteritems():
print "key: {}".format(keys)
print "values: {}".format(values)
keys1, values1 = keys
print "key1: {}".format(keys1)
print "values1: {}".format(values1)