如何使用python忽略列表中不存在的值



我在列表中有一个w.r.t列表错误。我正在尝试将元素分配给一个变量。因此,无论我在列表中插入什么,它都会被分配给这些变量。类似下方的显示

list = [[1, 2], [2, 3], [4, 5]]
car = list[0]
bike = list[1]
cycle = list[3]

现在,假设我不会给出第三个列表的值(如下所示(。然后我会得到一个错误:

list[[1, 2], [2, 3]]
car = list[0]
bike = list[1]
cycle = list[3]

错误消息:List index out of range

所以,我写了一个条件,应该忽略它。但是我得到了一个错误。如果没有给出值,如何忽略?

我的代码:

if list[0] == []:
continue
else:
car = list[0]
if list[1] == []:
bike = list[1]
if list[2] == []:
cycle = list[2]

SyntaxError:'continue' not properly in loop

我哪里错了?如果没有列表,如何给出if条件?我说得对吗?

如果我正确理解了您的问题,那么您要查找的是try/except语句。这允许您执行以下操作:

try:
car = list[0]
bike = list[1]
bike = list[2]
except IndexError:
pass

此代码允许您执行块";尝试";直到出现异常,如果发现错误,则继续循环。例如,你可以把这样的东西放在For循环中,如下所示:

for list in my_list_of_lists:
try:
car = list[0]
bike = list[1]
bike = list[2]
except IndexError:
continue

最后,关于这个

SyntaxError:循环中的'continue'不正确

如果使用break/content/pass语句,它们应该始终位于for或while循环中,如我上面所示。

就像你用语言说的那样。

lst = [[1,2],[2,3],[4,5]]
if len(lst) > 0:
car = lst[0]
if len(lst) > 1:
bike = lst[1]
if len(lst) > 2:
cycle = lst[2]

给定:

a = [[1,2],[2,3],[4,5]]

以及变量index,其中包含一个要用于索引列表的整数值。

几个选项:

  1. 检查列表的长度是否小于要提取的索引
if len(a) > index:
nested_list = a[index]
  1. 试试吧
try:
nested_list = a[index]
except IndexError as e:
print(f'index invalid {e}')
# fallback condition
nested_list = []

最新更新