打印元素在数组python问题

时间:2017-02-22 03:51:37

标签: python arrays

我想浏览我创建的数组的每个元素。但是,我正在做一些调试,但事实并非如此。这是我到目前为止所做的以及它的打印内容。

    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 个答案:

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