【发布时间】:2016-02-13 22:19:36
【问题描述】:
我知道如何在 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])
经过仔细检查,我注意到当打印出结果列表时,它总是将dict_values(......) 作为我无法删除的输出。我该如何解决这个问题?
【问题讨论】:
-
这里你应该非常小心......正如所写的,没有办法知道你将从这个表达式中得到哪些值。例如答案可能是
3、4、5、6或7(它可能会从一个运行更改为下一个运行),因为您无法保证第二个和第三个值因为 dict 是无序的。 -
在我的实际字典中,值已经按顺序写入其中。那么将其转换为列表不会确保一切正常吗?
-
没有。 (大多数情况下)将元素写入字典的顺序无关紧要——它们可以以完全不同的顺序返回。如果您想保留订单,请确保使用
collections.OrderedDict。
标签: python python-3.x dictionary