У меня есть функция библиотеки (которую я не могу изменить), которая принимает в качестве ввода итератор, предоставляющий определенный тип объектов. Я реализовал этот вход как генератор, который анализирует текст и дает его части. Я хотел бы иметь возможность учитывать другую информацию, найденную во время разбора текста.Как отправить дополнительные результаты от генератора python к потребительской функции?
Комментариев в следующем примере дает представление о том, что я хотел бы сделать:
the_text = """1:-
3:-
2:+
4:-
6:+
2:-
4:-
5:+
6:-
7:+"""
def extract_ints(text):
for line in text.split("\n"):
fields = line.split(":")
#<send fields[1] to my_consumer_function>
yield fields[0]
# Cannot modify this one (actually loaded from library)
def double_ints(num_source):
"""Only wants numbers."""
for num in num_source:
yield 2 * int(num)
def my_consumer_function(text):
for value in double_ints(extract_ints(text)):
#<receive sign from extract_ints>
#if sign == "-":
# value *= -1
print(value)
my_consumer_function(the_text)
Как я мог продолжить, чтобы отправить эту информацию от моего генератора к моей потребительской функции наряду с выходом из нередактируемых библиотечная функция?
вам нужно использовать этот double_ints? не можете ли вы просто позвонить карте, чтобы сделать это? – danielfranca
Это всего лишь пример. Я на самом деле имею дело с некоторой задачей анализа биоинформатики, но я предпочел использовать простой пример. – bli
Можете ли вы сохранить знаки в другом массиве, а затем использовать перечисление, чтобы получить нужный индекс и получить доступ к нему из my_consumer_function? – danielfranca