我正在遍历一个文件,我想检查下一个即将到来的对象是否等于当前对象。这两个对象的属性名称都类似Obj.name
这是一些简化的示例:
该文件包含:
Oba_A
Obj_B
Obj_C
Obj_D
我像这样循环遍历它们:
for obj in open("file.txt"):
check if Obj_A.name==Obj_B.name, if not:
if Obj_B.name==Obj_C.name
我是一名学习编程的生物学家。希望我在这里得到足够的鼓励。
忽略了如何从文本文件获取对象的问题,基本答案可能类似于以下内容:
last_value = None
for obj in collection:
if obj.name == last_value:
# do something
else:
# do something different
last_value = obj.name
更新:如果你想行动基础上的下一个对象匹配的第一个对象,你可以存储到以前的对象,而不是仅仅的名字,前一个参考:
prev_obj = None
for obj in collection:
if obj.name == prev_obj.name:
# do something with prev_obj
else:
# do something different
prev_obj = obj
或者,如果确实有助于将它们视为“当前”和“下一个”:
cur_obj = None
for next_obj in collection:
if next_obj.name == cur_obj.name:
# do something with cur_obj
else:
# do something different
cur_obj = next_obj
但是请注意,我所做的只是更改了命名。程序仍然相同。
附加更新:循环中的第一次,prev_obj为None,因此它没有name属性。通过将其更新为以下方式来捕获该案例:
prev_obj = None
for obj in collection:
if prev_obj is not None and obj.name == prev_obj.name:
# do something with prev_obj
else:
# do something different
prev_obj = obj
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句