第 1 步:创建字典
dict1 = {"one": 1, "two": 2, "zero": 0}
第 2 步:显示 dict1 的内容
dict1
{'one': 1, 'two': 2, 'zero': 0}
第3步:使用.items()创建 View 对象
vwobj = dict1.items()
第 4 步:显示对象的内容(元组列表)
vwobj
dict_items([('one', 1), ('two', 2), ('zero', 0)])
第 5 步:根据值对字典进行“排序”(字典不可排序)
dict2 = sorted(vwobj, key=lambda p0: p0[1])
第 6 步:显示 dict2 的内容(0、1、2“已排序”)
dict2
[('zero', 0), ('one', 1), ('two', 2)]
第7步:创建一个lambda函数(在sorted()函数之外)
def key(p0):
return p0[1]
第8步:并使用 View 对象作为其参数
key(vwobj)
TypeError: 'dict_items' object does not support indexing
第 9 步:结果出现 TypeError。问题...为什么可以仅在sorted()函数的上下文中索引 View 对象(我缺少什么)?
最佳答案
您没有在排序函数的上下文中索引 View 对象。在 dict2 = Sorted(vwobj, key=lambda p0: p0[1])
中,key
函数应用于 的元素>vwobj
,而不是 vwobj
本身。因此,sorted()
函数正在评估('one', 1)[1]
等,这是有效的,而key(vwobj)
尝试评估 vwobj[1]
,但不起作用。
关于python - 为什么 View 对象在 Python Sort() 函数的上下文中是可索引的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52900193/