我有一个简单的功能:
def foo(inp):
i = 0
while (i < len(inp)):
yield {i,inp[i]}
i = i+1
for x in foo(("a", "b", "c")):
print(x)
我希望打印
{0, 'a'}
{1, 'b'}
{2, 'c'}
但有时打印
{0, 'a'}
{1, 'b'}
{'c', 2}
为什么最后一个元组的成员被交换?
为了使它变得陌生,在输入列表中添加“ d”,我看到了三个不同的输出。要么所有输出都按顺序排列,要么只交换{'d',3)
,要么交换{'c',2)
和{'d',3)
sys.version:3.6.5(v3.6.5:f59c0932b4,2018年3月28日,17:00:18)[MSC v.1900 64位(AMD64)]