data = [
[
{'name': 'gan', 'age': 21}, {'name': 'esh', 'age': 22}
],
[
{'name': 'rahul', 'age': 23}, {'name': 'rohan', 'age': 24}
]
]
u_names = [data['name'] for i in data for j in i if data['age'] > 21]
print(u_names)
line 38, in <module>
if data['age'] > 21:
TypeError: list indices must be integers or slices, not str
我犯了这个错误,原因是什么
更改为:
data
是一个嵌套列表j
是内部实际迭代的dict
对象如果将对象重命名为更具描述性,则会看到结构:
也就是说:
请尝试以下操作:
通过访问
data['name']
,您试图访问原始数据数组上的属性name
,而不是在您的理解中分配给i
的子数组相关问题 更多 >
编程相关推荐