为什么我得到'list'对象没有属性'items'?

时间:2015-11-27 03:30:24

标签: python python-2.7

使用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'

我想知道为什么会发生这种情况以及如何解决这个问题?

6 个答案:

答案 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()