繁体   English   中英

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

[英]Is defining a variable using a for loop possible in Python?

如果我想for i in range(10): x+= 1赋值for i in range(10): x+= 1 ,因为x是未定义的,所以显然不起作用,我不得不在尝试写入x=0之前先声明x例如x=0 ,但是现在我有两行,一行用于声明x=0 ,另一行用于实际写入我要x的数据( for i in range(10): x+= 1 )。

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

沿x = for i in range(10): x+= 1东西x = for i in range(10): x+= 1

这是否有可能,或者我是在胡说八道?

不带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

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

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

enumerate还可以实现与您所描述的类似的效果,假设您希望将其他变量用作循环变量,以便在循环中执行其他操作:

例如

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM