真正简单的问题。我试图在Python中执行此操作:为x = str(y)范围(0,5)....在python中?
for x = str(y) in range(0,5):
这样y将保存一个整数,并且x将保存所述整数的字符串表示形式。我意识到我可以很容易地将它排成一行 - 只是想要一个快捷方式。
另外,我很好奇我到底在问什么。我确信在整个论坛中这已经被回答了数十亿次,但我不知道要找到什么。
真正简单的问题。我试图在Python中执行此操作:为x = str(y)范围(0,5)....在python中?
for x = str(y) in range(0,5):
这样y将保存一个整数,并且x将保存所述整数的字符串表示形式。我意识到我可以很容易地将它排成一行 - 只是想要一个快捷方式。
另外,我很好奇我到底在问什么。我确信在整个论坛中这已经被回答了数十亿次,但我不知道要找到什么。
您正在寻找:
for x in (str(y) for y in range(0, 5)):
这不来实例化str
列表(尽管5的开销元素不是问题)。但是,每当遇到这种情况,我通常只在循环体内使用str(y)
。
不,这不会在循环体中绑定'y'。 –
尽管如此,如果你真的想避免生成列表,那么你应该使用'xrange'。 –
您可以使用列表理解为实现这一目标:
str_list = ['%s'%(x) for x in range(0, 5)]
一个简单的方法是使用map()
功能:
for y in map(str, range(0, 5)):
# ...
的map()
函数采用一个可迭代和穿过第一ARG这是一个可调用的每个ELEM。
你的问题还不清楚,因为它依赖于一个一段代码,没有按”实际上编译。
for x,y in ((str(z), z) for z in range(0, 5)):
print x, y
上述构建体将分别结合x
并y
到str
和int
,对于每个循环迭代。输出是:
0 0
1 1
2 2
3 3
4 4
实际上,如果你直接读取那些不能编译的代码段,我用英文描述我试图用上述代码完成的事情。如果我的代码编译,我不会有问题。 另外,如果你没有提到我可以如何使它更清晰,这是无益的。我在我的帖子中特别说过,我不知道我在问什么:/ – user891876
您是否希望能够在循环体中引用'x'和'y'? –