我的代码没有给出期望的结果,我想将1到10的奇数一一添加到此列表中,但它会将它们全部相加。
l=[]
for i in range(1,10):
l.append(i)
i=i+2
print(l)
我想在列表中存储1,3,5,7,9。
答案 0 :(得分:2)
不能在for循环体内动态更改python中的迭代器。修改当前值不会影响迭代中接下来显示的内容。
因此,如果要打印奇数,则应使用内置的步长参数
l=[]
for i in range(1, 10, 2):
l.append(i)
print(l)
在这里,我们使用步长2将每次迭代后的可迭代次数增加2。
答案 1 :(得分:0)
您还可以如下使用内联for循环
l = [i for i in range(1, 10) if i%2==1]
print(l)
# [1, 3, 5, 7, 9]
或将step参数用作范围函数
l = [i for i in range(1, 10,2)]
print(l)
# [1, 3, 5, 7, 9]
答案 2 :(得分:0)
在python中,实现所需目标的最简单方法是:
l = list(range(1, 10, 2))
print(l)
对于您的代码,最简单的解决方法是仅添加step-size参数
l=[]
for i in range(1,10,2):
l.append(i)
i=i+2
print(l)