2010-05-27 90 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)]