我有一个自定义的类,比如,Man
,(整个类名等等)和这些对象的列表men
。我的目标是在此列表中搜索age
属性为特定数字的任何对象,并对此对象执行操作。如果不存在这样的条目,我想制作一个。
现在,我知道我可以这样做:
for year in range(70):
year_found = False
if year in [m.age for m in men]:
# do something
year_found = True
if not year_found:
men.append(Man(age=year))
但使用year_found
来保持数组中的位置似乎很笨拙。有没有人知道一个比类列表更好的数据结构,或者更方便的方法来解决这个问题?
答案 0 :(得分:2)
您可以尝试使用next()
:
man_search = next((man for man in men if man.age == year), None)
if man_search is None:
men.append(Man(age=year))
else:
# do something
答案 1 :(得分:2)
你可能想要使用套装。
ages = set(m.age for m in men)
all_ages = set(range(70))
for age in (all_ages - ages):
men.append(Man(age=age))