我试图在字典中迭代第二列(第一个索引),类似于:
dict = {
"Me": [("Blue", 37, 1, 2, "up", "left")],
"You": [("Green", 03, 3, 4, "up", "right"),
("Red", 29, 5, 6, "down", "right"),
("Yellow", 35, 7, 8, "straight", "down")],
"Them": [("Black", 08, 9, 10, "up", "up"),
}
并重新获得最大值。我所拥有的是:
for c in dict[1:2]:
x = 0
if c > x:
x = c
return x
我收到了一个不可用的类型错误。我知道它与代码如何迭代字典有关,但我仍然坚持如何解决它。语言是Python。这有什么不对?非常感谢任何帮助!
答案 0 :(得分:0)
您是否尝试使用dict.iteritems()迭代键值对?
例如:
for key, val in dic.iteritems():
print "Key: " + str(key) + "\t Value:" + str(val)
答案 1 :(得分:0)
1:2
是一个切片对象,它是不可取的,你想要的是这样的:
max(d[1] for l in dict.values() for d in l)
答案 2 :(得分:0)
首先,使用保留名称(如dict)停止变量
其次,通过编写mydict [1:2],您可以从字典中请求引用具有键1:2的元素的值,这是切片运算符。 现在切片运算符不能是字典中的键(没有哈希函数接受运算符并返回一个数值,该值在values数组中用作索引)。 因此,您应该在键列表和值列表上使用切片运算符,或者在项目列表上使用 - 具有顺序的列表,并且在它们上面有切片是有意义的(字典不保证具有相同的顺序在它改变之后)
第三,为什么在for循环的每次迭代中都将x设置为0?
第四,你可以这样做:
for value in mydict.values():
(a, b, c, d, e, f) = value[0]
print(b)