如何检查2d列表中的位置是否存在

时间:2017-03-23 14:16:59

标签: python-3.x indexing tuples

我目前正在构建一个函数,用于检查板上的位置是否存在并返回布尔值。该位置以元组形式给出,并且棋盘也称为拼图作为2d列表。

例如:

  

is_valid_location((1,1),[[None]])→False

     

is_valid_location((1,1),[[1,2],[2,1]])→True(因为2x2拼图有第1行和第1列)

     

is_valid_location((1,2),[[1,2],[2,1]])→False

我当前的代码试图将元组的索引0指定为x,将元组的索引1指定为y。然后我试图返回布尔值。

def is_valid_location(loc,puzzle):
    location=tuple(loc)
    x=location[0]
    y=location[1]
    return x in range(len(puzzle[0])) and y in range(len(puzzle))

该函数无效,因为我收到缩进错误,但据我所知,我已正确缩进。没有调用任何内置函数,有没有更简单的方法来做到这一点?

2 个答案:

答案 0 :(得分:1)

找不到缩进错误。如果您收到此错误,则主要是在使用标签和空格混合复制粘贴代码时导致的。删除所有间距,然后再将它们标记出来。

您的功能也可以简化为

def is_valid_location(loc, puzzle):
    x, y = loc
    return 0 <= x < len(puzzle[0]) and 0 <= y < len(puzzle)

答案 1 :(得分:0)

您的代码完全按照我将其复制到编辑器时的描述,因此我建议您进一步探索缩进错误。您可能正在混合制表符和空格;这可以通过更改文本编辑器的设置来解决,这样它总是用4个空格替换制表符。不幸的是,如果没有看到错误的追溯,很难帮助你。