通过索引从Python中的字典中提取值? def最大值和最小值(dic): dic_列表=dic.items()[0] 最大值=最小值=dic\U列表 对于dic.values()中的值: 如果值>最大值: 最大值=最大值 如果值3 dic_列表=dic.values()[0] 4最大值=最小值=dic\U列表 5表示dic中的值。值() TypeError:“dict_values”对象不支持索引

通过索引从Python中的字典中提取值? def最大值和最小值(dic): dic_列表=dic.items()[0] 最大值=最小值=dic\U列表 对于dic.values()中的值: 如果值>最大值: 最大值=最大值 如果值3 dic_列表=dic.values()[0] 4最大值=最小值=dic\U列表 5表示dic中的值。值() TypeError:“dict_values”对象不支持索引,python,Python,我正在做一个函数,它将字典中键的值作为输入,并输出这些值的最大值和最小值。所有值和键都是整数。我想将默认的最大值和最小值设置为第一个键的值,但由于某种原因,它会给我上面的TypeError。这对我来说很奇怪,因为在线程中,它似乎是推荐的解决方案 因为dict.values()返回一个dict\u values类型的对象。为了实现这一点,您必须键入cast-to-list(或tuple),如下所示: 样本运行: list(dic.values())[0] >>my_dict={1:2,3:4}

我正在做一个函数,它将字典中键的值作为输入,并输出这些值的最大值和最小值。所有值和键都是整数。我想将默认的最大值和最小值设置为第一个键的值,但由于某种原因,它会给我上面的TypeError。这对我来说很奇怪,因为在线程中,它似乎是推荐的解决方案

因为
dict.values()
返回一个
dict\u values
类型的对象。为了实现这一点,您必须键入cast-to-list(或tuple),如下所示:

样本运行:

list(dic.values())[0]
>>my_dict={1:2,3:4}
#你的语法;上升误差
>>>我的字典值()[1]
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“dict_values”对象不支持索引
#铸造到列表的类型;很好
>>>列表(my_dict.values())[1]
4.

您可以使用内部构件完成相同的任务:

def最大值和最小值(dic):
返回值(最大值(dic.values()),最小值(dic.values())

能否显示dic内容?您对单词值的使用令人困惑。字典是无序的,因此您无法保证“第一个”值是相同的。您引用的注释使用感谢您的及时回复。由于这是我的第一篇文章,我对继续使用堆栈溢出作为参考感到非常热情。这很危险:
dct.values()
本身就是无序的。每次你打电话都可以得到不同的订单,没错。我只是帮你找到了你面临的问题。如果您想维持订单,您绝对不应该使用正常的
dict
dict.values()
。但是,您可以通过使用collections.OrderedDict
which
dict.values()
返回有序响应来避免这种情况。出于本程序的目的,我实际上更喜欢无序而不是有序。
list(dic.values())[0]
>>> my_dict = {1: 2, 3: 4}

# Your syntax; raising error
>>> my_dict.values()[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'dict_values' object does not support indexing

# type-casted to list; works fine
>>> list(my_dict.values())[1]
4