是否有一种干净的“Pythonic”方法可以在 Python 中编写输入替换函数,每次调用时都会从预定的输入值列表中生成一个值?
raw_data = [8, 2, 1]
c = 0
def input():
global c
c += 1
return raw_data[c - 1]
for _ in range(3):
print(input())
这确实并且预计会输出:
8
2
1
直观上
yield
似乎应该是解决方案的一部分,但我无法理解如何将其实现为input
替代品。
我一直在使用的两种方法:
input = iter([8, 2, 1]).__next__
input = [8, 2, 1][::-1].pop
当然,如果您可以倒着写列表,则不需要
[::-1]
。
如果您还需要列表用于其他用途,则可以使用第一个解决方案,但将列表存储在额外的变量中。