Python - 使用数组列出索引超出范围

时间:2015-09-30 17:00:38

标签: python indexing

基本上我想创建一些输出新创建列表的东西。

def map(mines, layers):
    mine_distance = []
    mine_sector = []
    for i in range(layers):
        if mines[i][0] != 0 and mines[i][1] != 0:
            mine_distance.append(mine_distance[i][0])
            mine_sector.append(mine_sector[i][1])
    print(mine_distance, mine_sector)

map([[2, 4], [2, 1]], 5)

但是我得到了这个错误:
IndexError:列表索引超出范围

输出应为: [2,2] [4,1]
有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

我想它应该更正为:

mine_distance.append(mines[i][0])
mine_sector.append(mines[i][1])

之前您尝试访问(mine_distance.append(mine_distance[i][0]),此时此时为空)元素空列表,从而导致IndexOutOfBounds错误。< / p>

IndexOutOfBounds错误的另一个原因是len(mines)layers中的不平等,您应该传递layer参数= len(mines),或者您应该更改循环为for i in range(len(mines)):