真正简单的问题。我试图在python中执行此操作:
for x = str(y) in range(0,5):
这样y将保持一个整数,x将保存所述整数的字符串表示。我意识到我可以轻松地将它排成两行 - 只是想要一条捷径。
另外,我很好奇我到底在问什么。我相信整个论坛已经回答了无数次,但是我不知道找到它会发现什么。
答案 0 :(得分:4)
您正在寻找:
for x in (str(y) for y in range(0, 5)):
这不会带来实例化str
列表的开销(虽然有5个元素,但这几乎不是问题)。但是,每当我遇到这个时,我通常只在循环体内使用str(y)
。
答案 1 :(得分:4)
一种简单的方法是使用map()
函数:
for y in map(str, range(0, 5)):
# ...
map()
函数采用iterable并将每个elem传递给第一个可调用的arg。
答案 2 :(得分:2)
您可以使用列表理解来实现此目的:
str_list = ['%s'%(x) for x in range(0, 5)]
答案 3 :(得分:1)
答案 4 :(得分:0)
你的问题不清楚,因为它依赖于一段实际上没有编译的代码。
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