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

How to ignore if a value is not present inside a list using 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]

语法错误:'continue' not properly in loop

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

就像你会说的那样去做。

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]

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

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

此代码允许您执行块“try”,直到出现异常为止,如果发现错误,您只需继续循环即可。例如,您可以将类似的内容放入 for 循环中,如下所示:

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

最后,关于这个

SyntaxError: 'continue' not properly in loop

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

鉴于:

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 = []