2010-05-27 64 views
1
j=0 
x=[] 
for j in range(9): 
    x=x+ [j] 

这将输出列表问题?

[1,2,3,4,5,6,7,8,9] 

我想它作为

['1','2','3'... 

我怎样才能得到它呢?

+4

它应该输出'[0 ,1,2,3,4,5,6,7,8]'。 – 2010-05-27 09:08:32

回答

3

好,“好”巨蟒方式已经公布,但我想告诉你,你会如何修改你的榜样,使其工作方式你想让它:

j=0 
x=[] 
for j in range(9): 
    x = x + [str(j)] 
+0

清晰度规则:清晰度比聪明度要好。 – Anders 2010-05-27 09:58:48

+0

我可能会说'x.append(str(j))'比'+'运算符更清晰。 – tgray 2010-05-27 18:37:41

12

转换为字符串:

>>> [str(i) for i in range(9)] 
['0', '1', '2', '3', '4', '5', '6', '7', '8'] 

,如果你希望你的列表,开始与1只是改变你的range功能:

>>> [str(i) for i in range(1, 9)] 
['1', '2', '3', '4', '5', '6', '7', '8'] 

而且,你不需要初始化循环变量(j=0不需要)。

4

的Python 2

>>> map(str, range(1, 9)) 
['1', '2', '3', '4', '5', '6', '7', '8'] 

Python 3中

>>> list(map(str, range(1, 9))) 
['1', '2', '3', '4', '5', '6', '7', '8'] 

的文档range

+0

请注意,在Py3k上,这会在'<地图对象在0x ????>'处懒懒地返回。需要使用'list(map(str,range(9)))'来评估列表。 – kennytm 2010-05-27 09:19:44

+0

感谢您的更新。 – miku 2010-05-27 09:38:19

0
j=0 
x=[] 
for j in range(9): 
    x=x+[str(j)]