python - 为什么 View 对象在 Python Sort() 函数的上下文中是可索引的?

标签 python sorting dictionary indexing

第 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/

相关文章:

python - Django ORM查询连接两个字段上不相关的表

Python,如何删除文件中的工作?

Python 从迭代源创建字典列表

python - 如何将多个数组减为一个?

python-3.x - 如何通过列表理解检索字典的键和值列表?

javascript - Google Apps HTTP Streaming with Python 问题

python - MySQL: django.db.utils.OperationalError: (1366, "Incorrect integer value: ' Category object' for column 'category_id' at row 1")

scala - Spark中按RDD的列排序

c# - 将项目添加到已排序的 observablecollection

python - 对形成闭环的边进行排序