gpt4 book ai didi

Python 去生成器中的特定迭代

转载 作者:行者123 更新时间:2023-11-28 17:34:06 25 4
gpt4 key购买 nike

我正在寻找一种方法来导航到生成器对象中的特定迭代。

我有一个遍历 JSON 对象列表的生成器对象。我没有一次加载所有这些对象,而是创建了一个生成器,以便每个 JSON 对象仅在每次迭代时加载。

def read_data(file_name):
with open(file_name) as data_file:
for user in data_file:
yield json.loads(user)

但是,现在我正在寻找某种方法来导航到第 n 次迭代以检索有关该用户的更多数据。我能想到的唯一方法是遍历生成器并在第 n 个枚举处停止:

n = 3
data = read_data(file_name)
for num, user in enumerate(data):
if num == n:
<retrieve more data>

有什么更好的方法吗?

最佳答案

应该这样做:

from itertools import islice

def nth(iterable, n, default=None):
"Returns the nth item or a default value"
return next(islice(iterable, n, None), default)

这是众多 useful utilities included in the itertools documentation 之一.

关于Python 去生成器中的特定迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32131052/

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