任务是将 1 到 99 的奇数打印在不同的行上。
Codeeval 认为此代码部分正确(100 中的 98):(已编辑)
liszt = (i for i in range(1,100) if i%2!=0)
for i in liszt:
print i
Codeeval 认为以下代码完全正确:
liszt = range(1,100)
for i in liszt:
if i%2!=0:
print i
Python 新手,所以只是想了解为什么一种方法可能比另一种方法更好。第二种方法效率更高吗?
谢谢您的帮助!
在第一个代码中,您首先迭代两个生成器range(1, 100)
然后结束liszt
而在第二种情况下,迭代仅结束liszt
。除此之外,两种情况下的操作都是相同的,因此第二种方法更有效。
由于 1 之后的每个第二个数字都是奇数,因此更好的解决方案可能是:
for i in range(1, 100, 2):
print(i)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)