<pre><code>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
</code></pre>
<p>我犯了这个错误,原因是什么</p>
<p>请尝试以下操作:</p>
<pre><code>u_names = [j['name']
for i in data:
for j in i:
if j['age'] > 21:
print(u_names)
</code></pre>
<p>通过访问<code>data['name']</code>,您试图访问原始数据数组上的属性<code>name</code>,而不是在您的理解中分配给<code>i</code>的子数组</p>