是否可以在Python中使用for循环定义变量?

时间:2017-09-30 11:04:14

标签: python python-3.x

如果我想要for i in range(10): x+= 1显然无效,因为x未定义,我必须声明x,例如在尝试写入之前x=0,但现在我有两行,一行用于声明x=0,另一行用于实际写入我想要的数据xfor i in range(10): x+= 1)。

我想知道,有没有办法在一行中做到这一点?或者更具体地说,将x声明为for循环的结果?

x = for i in range(10): x+= 1的某些内容?

这甚至是可能的,还是我问一个无意义的问题?

2 个答案:

答案 0 :(得分:3)

没有for声明。

但是,您可以使用类似的构造,例如列表推导表达式或生成器表达式:

x = sum(i for i in range(10))

这相当于只说

x = sum(range(10))

编辑:正如Dougal正确指出的那样,在你的例子中你增加1,所以等价是

x = sum(1 for i in range(10))

又与x = len(range(10))x = 10相同。

答案 1 :(得分:0)

在大多数情况下,我想你只想用x作为循环变量:

for x in range(10): pass#or range(1,11) 

enumerate也会达到与你所描述的相似的效果,假设你想要一个不同的变量作为循环变量,以便在循环中做其他事情:

e.g。

for i,x in enumerate(range(x_start,x_end+1)): 
    #do something