检查列表列表中的位置是真还是假
Checking if position in a list of lists is true or false
我正在尝试编写一个函数来分析特定位置的给定列表列表,return如果该位置存在则为 True,如果不存在则为 False。
例如,如果我们称为 "list2" 的列表列表有 7 列和 5 行(基本上是一个包含 5 个列表的列表,其中每个列表有 7 个值并且在其自己的行上),如果测试用例 list2[5][4] 是 运行,则函数应该 return True 因为第 5 行和第 4 列存在,但如果测试用例 list2[8][6] 或list2[-5][-1] 通过函数是 运行 它应该 return False 因为第 8 行和第 6 列不存在并且我们不能有负数的行和列。这是如何实现的?
这是我目前的代码。测试时它说语法无效,但我想我还是会包含它以帮助显示我的目标是什么
def in_list(row, col, list):
if list[row][col] == True
return True
else:
return False
在 if
和 else
之后缩进您的代码。并使用冒号“:”
def in_list(row, col, list):
if list[row][col] == True:
return True
else:
return False
通过添加冒号并根据需要缩进代码来修复代码后,您可能会遇到另一个错误:Accessing indices that do not exist is not allowed in python,它不等于 False
.
规避它的一种方法是将您的测试包含在 try:
...except
块中。
如果您真的想通过访问数组项来测试它,请将其包装在 try
..except
块中。如果出现异常,returnFalse
,否则returnTrue
.
但是,有一个更简单的方法——只需使用数组的长度测试 row
和 col
是否指向有效条目。这是一种方法。
def in_list(row, col, lst):
if 0 <= row < len(lst) and 0 <= col < len(lst[row]):
return True
else:
return False
还有更简洁的方法,但是这个要清楚。如果 row
不在范围内,if
行中的 "short-cut evaluation" 可防止在检查 col
时出现异常。请注意,我将参数名称从 list
更改为 lst
:使用内置名称是个坏主意。请注意,我的代码不检查条目的值是 True
还是 False
,正如您的代码似乎试图做的那样——如果您想要那样,很容易将该检查添加到我的代码。最后,请注意,如果数组的行具有不同的列数,我的代码也可以工作,这在 Python 中是可能的。我的代码只检查请求的行,适合这个目的。
我正在尝试编写一个函数来分析特定位置的给定列表列表,return如果该位置存在则为 True,如果不存在则为 False。
例如,如果我们称为 "list2" 的列表列表有 7 列和 5 行(基本上是一个包含 5 个列表的列表,其中每个列表有 7 个值并且在其自己的行上),如果测试用例 list2[5][4] 是 运行,则函数应该 return True 因为第 5 行和第 4 列存在,但如果测试用例 list2[8][6] 或list2[-5][-1] 通过函数是 运行 它应该 return False 因为第 8 行和第 6 列不存在并且我们不能有负数的行和列。这是如何实现的?
这是我目前的代码。测试时它说语法无效,但我想我还是会包含它以帮助显示我的目标是什么
def in_list(row, col, list):
if list[row][col] == True
return True
else:
return False
在 if
和 else
之后缩进您的代码。并使用冒号“:”
def in_list(row, col, list):
if list[row][col] == True:
return True
else:
return False
通过添加冒号并根据需要缩进代码来修复代码后,您可能会遇到另一个错误:Accessing indices that do not exist is not allowed in python,它不等于 False
.
规避它的一种方法是将您的测试包含在 try:
...except
块中。
如果您真的想通过访问数组项来测试它,请将其包装在 try
..except
块中。如果出现异常,returnFalse
,否则returnTrue
.
但是,有一个更简单的方法——只需使用数组的长度测试 row
和 col
是否指向有效条目。这是一种方法。
def in_list(row, col, lst):
if 0 <= row < len(lst) and 0 <= col < len(lst[row]):
return True
else:
return False
还有更简洁的方法,但是这个要清楚。如果 row
不在范围内,if
行中的 "short-cut evaluation" 可防止在检查 col
时出现异常。请注意,我将参数名称从 list
更改为 lst
:使用内置名称是个坏主意。请注意,我的代码不检查条目的值是 True
还是 False
,正如您的代码似乎试图做的那样——如果您想要那样,很容易将该检查添加到我的代码。最后,请注意,如果数组的行具有不同的列数,我的代码也可以工作,这在 Python 中是可能的。我的代码只检查请求的行,适合这个目的。