gpt4 book ai didi

迭代直到 x 成功的 Python 最佳实践?

转载 作者:行者123 更新时间:2023-11-28 20:46:01 25 4
gpt4 key购买 nike

如果在其他地方回答了这个问题,我深表歉意,但如果是的话,我还没有找到。

我想遍历一个对象并构建一个包含 x 个符合我的评估标准的项目的列表。一旦达到我的项目数量阈值,我想停止迭代。我曾尝试使用 while 循环和计数器来执行此操作,这在 Python 中几乎从未见过,现在我正在使用 for 循环和开始时的测试条件来执行此操作。我现在所做的工作有效,但我认为必须有更好的模式,也许可以使用我运行 x 次的生成器。

list_length = 25
list_results = []

for item in some_object:

# test if list length condition met
results_count = len(list_results)
if results_count >= list_length:
break

# length condition not met, process some more
if item == some_criteria:
list_results.append(item)

我几乎找不到这方面的例子这一事实通常很好地表明我做错了 - 非常感谢任何对最佳实践的见解 - 谢谢!

最佳答案

IIUC,itertools.islice 怎么样?

>>> from itertools import islice
>>> some_object = range(1000)
>>> good_values = (x for x in some_object if x % 5 == 0)
>>> keep = list(islice(good_values, 0, 25))
>>> len(keep)
25

即使没有 25 个可以得到,这也可以工作:

>>> good_values = (x for x in some_object if x > 10**6)
>>> keep = list(islice(good_values, 0, 25))
>>> len(keep)
0

关于迭代直到 x 成功的 Python 最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21709952/

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