假设我们有一个对象的列表:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
people = [
Person('Alice', 25),
Person('Bob', 30),
Person('Charlie', 35)
]
也有一个字典的列表:
people_dict = [
{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': 30},
{'name': 'Charlie', 'age': 35}
]
我们可以通过将对象列表转换为字典列表来方便地比较两个列表:
def to_dict(person):
return {'name': person.name, 'age': person.age}
people_as_dict = list(map(to_dict, people))
for i in range(len(people)):
if people_as_dict[i] != people_dict[i]:
print('Person at index', i, 'differs')
在这个例子中,我们首先定义了一个'to_dict”函数,它接受一个人对象并返回一个字典,其中包含该人的姓名和年龄。然后我们使用'map”函数将该函数应用于所有人,将结果转换为字典列表。最后,我们使用普通的循环进行比较,并在发现不同的情况下打印出索引。