gpt4 book ai didi

python - 检测 Python 循环中的值变化

转载 作者:太空宇宙 更新时间:2023-11-03 12:59:09 25 4
gpt4 key购买 nike

这是我经常使用的模式:

last_value = None

while <some_condition>:
<get current_value from somewhere>
if last_value != current_value:
<do something>

last_value = current_value

一个应用示例是在某个人的姓氏发生变化时打印报告中的标题。

整个 last_value/current_value 对我来说总是很笨拙。有没有更好的方法在 Python 中对此进行编码?

最佳答案

我同意您的模式很有意义。

但为了好玩,您可以做如下事情:

class ValueCache(object):
def __init__(self, val=None):
self.val = val

def update(self, new):
if self.val == new:
return False
else:
self.val = new
return True

然后你的循环看起来像:

val = ValueCache()
while <some_condition>:
if val.update(<get current_value from somewhere>):
<do something>

例如

import time
t = ValueCache()
while True:
if t.update(time.time()):
print("Cache Updated!")

如果您将 time.time() 更改为某个静态对象,例如“Foo”,您会看到“缓存已更新!”只会出现一次(当它最初从 None 设置为“Foo”时)。

强制性现实程序员注意事项:不要这样做。我很难找到在实践中这样做的充分理由。它不仅增加了行数,而且增加了复杂性。

(灵感来自 Alex Martelli's Assign and Test Recipe )

关于python - 检测 Python 循环中的值变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28909474/

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