例如,如果词典是{0:0, 1:0, 2:0}
制作列表:[0, 0, 0]
。
如果无法做到这一点,你如何取字典的最小值,即字典:{0:3, 1:2, 2:1}
返回1
?
答案 0 :(得分:2)
您只需使用最小:
min(dic.values())
将其转换为列表,其中包含:
list(dic.values())
但由于字典是无序的,结果列表的元素顺序是未定义的。
在python-2.7中,您无需致电list(..)
只需dic.values()
即可:
dic.values()
答案 1 :(得分:2)
将dictionary转换为列表非常简单,.keys()
,.values()
和.items()
>>> test = {1:30,2:20,3:10}
>>> test.keys() # you get the same result with list(test)
[1, 2, 3]
>>> test.values()
[30, 20, 10]
>>> test.items()
[(1, 30), (2, 20), (3, 10)]
>>>
(在python 3中你需要调用那些列表)
使用min或max函数,查找最大值或最小值也很容易
>>> min(test.keys()) # is the same as min(test)
1
>>> min(test.values())
10
>>> min(test.items())
(1, 30)
>>> max(test.keys()) # is the same as max(test)
3
>>> max(test.values())
30
>>> max(test.items())
(3, 10)
>>>
(在python 2中,为了高效,请改用它们的.iter*版本)
最有趣的一个是找到最小/最大值的关键,而最小/最大值也得到了那个
>>> max(test.items(),key=lambda x: x[-1])
(1, 30)
>>> min(test.items(),key=lambda x: x[-1])
(3, 10)
>>>
这里你需要一个键函数,它是一个函数,它接受你给main函数的任何一个并返回你想要比较它们的元素(你也可以把它转换成别的东西)
lambda是define anonymous功能的一种方式,可以节省您执行此操作的需要
>>> def last(x):
return x[-1]
>>> min(test.items(),key=last)
(3, 10)
>>>
答案 2 :(得分:1)
>>> a = {0:0, 1:2, 2:4}
>>> a.keys()
[0, 1, 2]
>>> a.values()
[0, 2, 4]
答案 3 :(得分:-1)
字典定义如下:
dict{[Any]:[Any]} = {[Key]:[Value]}
您的问题的问题在于您还没有弄清楚密钥是什么。
1:假设密钥只是数字而且按升序排列,dict.values()
就足够了,正如其他作者已经指出的那样。
2:假设密钥只是严格按升序排列的数字,而不是正确的顺序:
i = 0
list = []
while i < max(mydict.keys()):
list.append(mydict[i])
i += 1
3:假设钥匙只是数字而不是严格按升序排列:
还有一种方法,但你必须首先获得密钥并通过最大的密钥和try-except
块
4:如果不是这种情况,可能dict
不是你想要的,2d或3d数组就足够了吗? 如果其中一个解决方案有效,这也很重要。 Dict
对于您正在做的事情似乎是一个糟糕的选择。