首页 > 解决方案 > 在 Python 中,range(1, 100, *10) 不起作用?

问题描述

range()我的 for 循环有问题。

在 C++ 中,for 循环可以这样使用:

for(int i=1;i<=100;i*=10){
 //lala
}

我的导致错误的 Python 脚本如下所示:

li = [x for x in range(100, 0, /10)]

print(li)

我希望得到li = [100, 10, 1]

我怎样才能在不使用的情况下实现这一点li.append ( 100, 10, 1 )

标签: pythonlistloopsfor-loop

解决方案


你不能用range这个。range 的第三个参数是用于递增值的固定步长:它不能用于乘以或除以先前的值。

相反,使用while循环:

i = 1
while i < 100:
   ...
   i *= 10  # or i /= 10 depending on what you want.

如果您真的想使用列表推导,可以按照 Albin Paul 的建议进行操作:

li = [10**x for x in range(3) ]  # [1, 10, 100]
li = [10**x for x in range(2, -1, -1)  # [100, 10, 1]

推荐阅读