for x = str(y)在范围(0,5)....在python?

时间:2013-03-28 18:16:22

标签: python

真正简单的问题。我试图在python中执行此操作:

for x = str(y) in range(0,5):

这样y将保持一个整数,x将保存所述整数的字符串表示。我意识到我可以轻松地将它排成两行 - 只是想要一条捷径。

另外,我很好奇我到底在问什么。我相信整个论坛已经回答了无数次,但是我不知道找到它会发现什么。

5 个答案:

答案 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)

您最有可能搜索List Comprehensions

[(str(y),y) for y in range(0,5)]

这将为您提供字符串和整数的元组作为列表,然后像其他任何一样遍历该列表

答案 4 :(得分:0)

你的问题不清楚,因为它依赖于一段实际上没有编译的代码。

for x,y in ((str(z), z) for z in range(0, 5)):
  print x, y

对于每个循环迭代,上述构造将分别将xy绑定到strint。输出是:

0 0
1 1
2 2
3 3
4 4