gpt4 book ai didi

python - python中更好的while循环结构

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

我有一个函数 remove_it() 尝试删除一些数据,删除的数据被添加到集合 removed 中。主要逻辑是,如果有更多要删除,继续删除,我的代码如下所示:

    removed = set()
prev_count = -1

while prev_count != len(removed):
prev_count = len(removed)
remove_it()

让我有点困扰的是 while 循环条件和下一行看起来非常相似。这是正常现象还是有更好的方法?

remove_it() 中的逻辑非常复杂:它检测一些图形结构拓扑,并且在每一轮删除之后拓扑都会发生变化,在删除完成之前我不知道它是如何变化的。

我正在考虑从 remove_it() 返回 bool 值来跟踪集合 removed 是否已更改。然后 while 循环就像

while remove_it():
pass

这对我来说也很奇怪。有没有更好的办法?

最佳答案

您的remove_it 函数有副作用,这会使程序更难阅读。您可以重写它,而不是修改全局 removed 变量,而是返回一组已删除的值。然后你可以重写循环:

removed = set()

while True:
removed_batch = remove_it()
if removed_batch:
removed += removed_batch
else:
break

关于python - python中更好的while循环结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41880297/

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