[英]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.