我想浏览我创建的数组的每个元素。但是,我正在做一些调试,但事实并非如此。这是我到目前为止所做的以及它的打印内容。
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?我不确定为什么这会返回我的整个阵列。
答案 0 :(得分: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))
答案 1 :(得分:0)
首先,更改xcoords
,使其不是列表中的列表:
xcoords = range(2, 31)
我们不需要使用len(xcoords)
使用索引对列表进行迭代。在python中,我们可以简单地迭代这样的列表:
for coord in xcoords:
print "i: ", coord
如果我们确实需要跟踪索引,我们可以使用enumerate
:
for i, coord in enumerate(xcoords):
print str(i) + ":", coord