Python:TypeError:list indices必须是整数,而不是元组

时间:2015-08-04 12:56:37

标签: python

puzzle = [[' 1', ' 2', ' 3', ' 4'], [' 5', ' 6', ' 7', ' 8'], [' 9', '10', '11', '12'], ['13', '14', '15', 'X']]

remaining = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

for line in puzzle:
    for element in line:
        current_line = str(puzzle.index(line))
        current_element = str(element)
        curr_input = str(input('Enter number for row ' + current_line + ' and column' + current_element + " from " + str(remaining) + "\n\n"))
        puzzle[puzzle.index(line), element] = curr_input
        remaining.remove(curr_input)

我收到错误:

TypeError: list indices must be integers, not tuple

换行

puzzle[puzzle.index(line), element] = curr_input

但这些指数都不是元组!这就是我使用puzzle.index函数的原因!出了什么问题?

2 个答案:

答案 0 :(得分:0)

您正在尝试访问基于元组索引的列表索引:

puzzle[puzzle.index(line), element] = curr_input

你应该使用:

puzzle[puzzle.index(line)][line.index(element)] = curr_input

错误是因为您尝试访问的方式是隐式转换为元组。

编辑:

为了澄清,只需继续你的python并尝试:

>>> 1,2      
(1, 2)       

答案 1 :(得分:-2)

您的错误在此行

 puzzle[puzzle.index(line), element] = curr_input

你无法像那样访问列表列表的元素......