gpt4 book ai didi

python - 如何忽略第一屈服值?

转载 作者:行者123 更新时间:2023-12-03 06:42:16 27 4
gpt4 key购买 nike

以下代码仅用于说明目的。

def get_messages_from_redis():
for item in self.pubsub.listen():
yield (item['channel'], item['data']) # how to ignore the first yield?
我知道以下方法可以忽略第一个yield值:
g = get_messages_from_redis()
next(g)
但是,如何在 get_messages_from_redis()中忽略这一点呢?
(可以使用计数器来控制是否屈服,但是有更好的方法吗?)

最佳答案

在让步之前在函数内部进行迭代。我不确定您的可迭代对象到底是什么,但这是一个通用示例,假设list

def get_messages_from_redis():
for item in self.pubsub.listen()[1:]:
yield item['channel'], item['data']
对于更通用的解决方案,您可以创建一个可迭代的迭代器,在第一个迭代器上迭代,然后从那里循环并产生。 注意:这主要是为了扩大覆盖范围,我不确定这对某些可迭代对象可能产生什么负面影响。
def iter_skip_first(i):
iterable = iter(i)
next(iterable)

for i in iterable:
yield i

li = [1, 2, 3, 4]
d = {"one": 1, "two": 2, "three": 3, "four": 4}

print(*iter_skip_first(li))
print(*iter_skip_first(d))

关于python - 如何忽略第一屈服值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63189004/

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