2017-02-22 48 views
0

我想通過我創建的數組的每個元素。但是,我正在做一些調試,事實並非如此。以下是我目前爲止的內容以及打印出的內容。陣列中的打印元素python問題

def prob_thirteen(self): 
     #create array of numbers 2-30 
     xcoords = [range(2,31)] 
     ycoords = [] 

     for i in range(len(xcoords)): 
      print 'i:', xcoords[i] 

輸出:

i: [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30] 

爲什麼 '我' 回到我的整個陣列,而不只是第一個元素:2?我不知道爲什麼這會返回我的整個陣列。

回答

2
xcoords = [range(2,31)] 

這條線將創建長度1.該數組中的唯一的元件的陣列是數字2的陣列 - > 30.你的循環正在打印數組的元素。更改該行:

xcoords = range(2,31) 

這個答案就是Python 2正確的,因爲range function返回一個列表。 Python 3將返回一個range對象(可以重複生成所需的值)。以下行應在Python 2和3的工作:

xoords = list(range(2,31)) 
+0

啊難怪,非常感謝你! – helloworld

0

首先,改變xcoords所以它不是一個列表內的列表:

xcoords = range(2, 31) 

我們並不需要遍歷在列表中使用len(xcoords)使用列表中的索引。在蟒蛇我們可以簡單地遍歷像這樣的列表:

for coord in xcoords: 
    print "i: ", coord 

如果我們需要跟蹤的指數,我們可以使用enumerate

for i, coord in enumerate(xcoords): 
    print str(i) + ":", coord