有人能解释为什么:
table ={1249.99: 36.30,
1749.99: 54.50,
2249.99: 72.70,
2749.99: 90.80,
3249.99: 109.00,
3749.99: 127.20,
4249.99: 145.30}
x = 1000
y = next(x for x in table if x > 1000) work fines
另一方面,执行下面的操作会给出一个StopIteration
y = next(x for x in table if x > x)
第一个是有效的,因为
x
总是大于1000,因为x
变量与前一行定义的x
不同,而是for x in table
中的x
。所以x
是table
的下一个键。所有的键都大于1000,所以创建的迭代器不是空的。你知道吗第二个例子提出了
StopIteration
,因为x
永远不会大于x
,这意味着您将从一个空迭代器获得下一个迭代。你知道吗考虑以下几点:
您的代码等效于:
相关问题 更多 >
编程相关推荐