报错代码的来源是什么?
报错代码:
Error: 'object' is not iterable
代码:
objects = [
{"name": "John", "age": 30},
{"name": "Mary", "age": 25},
{"name": "Bob", "age": 40}
]
for object in objects:
print(object["name"])
代码中的错误:
代码中的 for
循环遍历 objects
列表中的对象。然而,objects
列表中不是可迭代的,因为它包含字典对象,而字典对象不是可迭代的。
解决方案:
可以将 objects
列表转换为可迭代的列表,例如使用列表 comprehension 或 iter()
函数。
修改后的代码:
objects = [
{"name": "John", "age": 30},
{"name": "Mary", "age": 25},
{"name": "Bob", "age": 40}
]
# 使用列表 comprehension
names = [object["name"] for object in objects]
# 使用 iter() 函数
names = iter([object["name"] for object in objects])
for name in names:
print(name)
注意:
-
iter()
函数会创建一个迭代器,该迭代器允许您遍历objects
列表中的元素。 -
for
循环使用names
列表中的元素来打印object["name"]
。