gpt4 book ai didi

python - 检查下一个值是否等于python循环中的当前值?

转载 作者:太空宇宙 更新时间:2023-11-04 08:58:08 24 4
gpt4 key购买 nike

我正在遍历一个文件,我想检查下一个对象是否等于当前对象。这两个对象都有一个属性名称,如 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

关于python - 检查下一个值是否等于python循环中的当前值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28258278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com