我正在尝试构造一个for循环,其中我将使用循环的索引作为列表中的元素。这是我的代码:
a
理想情况下,我希望a1 = []
a2 = []
for i in range(1, 91, 2):
for j in range(1, i, 2):
a1.append(float(i))
a2.append(float(j))
以a1
开头,但是当我打印其元素时,我会从3.0开始:
1.0
我在这里做错了什么?我真的很困惑。我想我会先[3.0, 5.0, 5.0, 7.0, 7.0, 7.0, 9.0, 9.0, 9.0, 9.0, 11.0, 11.0, 11.0...]
作为第一个元素,然后是1.0
,这要归功于2的步骤,依此类推。
由于我无法找到任何有关此问题的答案,如果之前有人问过,我道歉。在此先感谢您的帮助。
编辑:感谢大家对正在发生的事情的意见!你们都非常乐于助人。 并感谢jojo纠正我的格式。
答案 0 :(得分:1)
这是因为当i为1时,内部j循环永远不会发生。所以你要做的是在进入内部j循环之前将i追加到a1
for i in range(1, 91, 2):
a1.append(float(i))
for j in range(1, i, 2):
a2.append(float(j))
希望这有帮助!
答案 1 :(得分:0)
那是因为当i = 1
内部j
循环具有以下形式时:
for j in range(1, 1, 2):
...
因此,range
函数返回空列表时不会运行迭代。
>>> range(1, 1, 2)
[]
因此,在外循环的第一次迭代中不执行追加。