使用Python 2.7,我有这个列表:
qs = [{u'a': 15L, u'b': 9L, u'a': 16L}]
我想从中提取价值。
即。 [15, 9, 16]
所以我试过了:
result_list = [int(v) for k,v in qs.items()]
但相反,我得到了这个错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'items'
我想知道为什么会发生这种情况以及如何解决这个问题?
答案 0 :(得分:11)
result_list = [int(v) for k,v in qs[0].items()]
qs是一个列表,qs [0]是你想要的词典!
答案 1 :(得分:2)
如果qs
有多个词典,则采用更通用的方法:
[int(v) for lst in qs for k, v in lst.items()]
-
>>> qs = [{u'a': 15L, u'b': 9L, u'a': 16L}, {u'a': 20, u'b': 35}]
>>> result_list = [int(v) for lst in qs for k, v in lst.items()]
>>> result_list
[16, 9, 20, 35]
答案 2 :(得分:0)
字典不支持重复键 - 因此您将获得最后一个键,即{。{}}但不是第一个键a=15
>>>qs = [{u'a': 15L, u'b': 9L, u'a': 16L}]
>>>qs
>>>[{u'a': 16L, u'b': 9L}]
>>>result_list = [int(v) for k,v in qs[0].items()]
>>>result_list
>>>[16, 9]
答案 3 :(得分:0)
项是dict对象的一个属性。可以尝试
qs[0].items()
答案 4 :(得分:0)
列表中有一本字典。您必须首先从列表中提取字典,然后处理字典中的项目。
如果您的列表包含多个词典,并且您希望存储在列表中的每个词典的值如下所示:
result_list = [[int(v) for k,v in d.items()] for d in qs]
与以下内容相同:
result_list = []
for d in qs:
result_list.append([int(v) for k,v in d.items()])
上面将把每个字典的值保存在各自的单独列表中。如果您只想要一个大列表中的所有值,您可以这样做:
result_list = [int(v) for d in qs for k,v in d.items()]
答案 5 :(得分:0)
如果您不关心数字的类型,您可以使用:
qs[0].values()