Issue
I know how to convert a dictionary into an list in Python, but somehow when I try to get, say, the sum of the resulting list, I get the error 'dict_values' object is not subscriptable
. Also, I plan to sum only several items in the list.
dict = {A:1, B:2, C:3, D:4}
arr = dict.values()
the_sum = sum(arr[1:3])
Upon closer inspection, I noticed that when the resulting list is printed out, it always gives dict_values(......)
as the output which I can't remove. How do I get around this?
Solution
In python-3.X dict.values
doesn't return a list
object like how it used to perform in python-2.X. In python-3.x it returns a dict-value
object which is a set-like object and uses a hash table for storing its items which is not suitable for indexing. This feature, in addition to supporting most of set
attributes, is very optimized for operations like membership checking (using in
operator).
If you want to get a list object, you need to convert it to list by passing the result to the list()
function.
the_values = dict.values()
SUM = sum(list(the_values)[1:10])
Answered By - Mazdak
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.