如何不 return 生成器中的重复值?
How to not return duplicate values from a generator?
我有如下功能:
def fun(content):
for i in content:
id = i.split('\"')[0]
yield id
return id
问题是内容中有一些重复值。
有什么方法可以知道值 'id' 是否已经在生成器 'id' 中?而不是获得最终生成器然后使用 set()?
您可以在 fun
中使用 set
来跟踪已经看到的 ID:
def fun(content):
observed = set()
for i in content:
id = i.split('\"')[0]
if id not in observed:
observed.add(id)
yield id
此外,由于您生成的是 ID,所以最后不需要 return。
我有如下功能:
def fun(content):
for i in content:
id = i.split('\"')[0]
yield id
return id
问题是内容中有一些重复值。 有什么方法可以知道值 'id' 是否已经在生成器 'id' 中?而不是获得最终生成器然后使用 set()?
您可以在 fun
中使用 set
来跟踪已经看到的 ID:
def fun(content):
observed = set()
for i in content:
id = i.split('\"')[0]
if id not in observed:
observed.add(id)
yield id
此外,由于您生成的是 ID,所以最后不需要 return。