4
我有一个库函数(我无法更改),它将输入的迭代器作为提供某种类型对象的迭代器。我将此输入实现为一个生成器,用于解析文本并生成部分文本。我希望能够考虑在文本解析期间找到的其他信息。如何从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