quo*_*le7 17 python dictionary python-3.x
我知道如何将字典转换为Python中的列表,但不知何故,当我试图得到结果列表的总和时,我得到了错误'dict_values' object is not subscriptable.另外,我打算只列出清单中的几个项目.
dict = {A:1, B:2, C:3, D:4}
arr = dict.values()
the_sum = sum(arr[1:3])
Run Code Online (Sandbox Code Playgroud)
经过仔细检查,我注意到当打印出结果列表时,它总是dict_values(......)作为我无法删除的输出.我该如何解决这个问题?
Kas*_*mvd 27
在python-3.X dict.values中没有list像python-2.X那样返回它的表现.在python-3.x中,它返回一个dict-value对象,该对象是一个类似于对象的对象,并使用哈希表来存储其项目.此功能除了支持大多数set属性外,还针对某些操作进行了优化,例如成员资格检查(使用in运算符).因此,它不支持索引.
如果要获取列表对象,则需要通过将结果传递给list()函数将其转换为列表.
the_values = dict.values()
SUM = sum(list(the_values)[1:10])
Run Code Online (Sandbox Code Playgroud)
小智 7
通过分配dict.values()给列表,您不会将其转换为列表;你只是将它存储为 dict_values (可能是一个对象)。要转换它写value_list=list(dict.values()). 现在,即使在打印时,value_list您也将获得列表元素而不是dict_values(......).
如前所述,不要使用 Python 内置名称作为变量名称;它可能会在执行过程中引起冲突,并在阅读代码时造成混乱。
| 归档时间: |
|
| 查看次数: |
17200 次 |
| 最近记录: |