Как не вернуть повторяющиеся значения из генератора? - PullRequest
0 голосов
/ 02 мая 2018

У меня есть функция, как показано ниже:

def fun(content):
    for i in content:
        id = i.split('\"')[0]
        yield id    
    return id

Проблема в том, что в контенте есть дублированные значения. Есть ли способ узнать, находится ли значение id в генераторе id? Вместо того, чтобы получить окончательный генератор, используйте set ()?

1 Ответ

0 голосов
/ 02 мая 2018

Вы можете использовать set внутри fun, чтобы отслеживать уже увиденные идентификаторы:

def fun(content):
    observed = set()
    for i in content:
        id = i.split('\"')[0]
        if id not in observed:
            observed.add(id)
            yield id

Кроме того, поскольку вы получаете идентификаторы, вам не нужно возвращаться в конце.

...