如何在Python中检查数组/列表中是否存在条目?

如何在Python中检查数组/列表中是否存在条目?,python,arrays,list,Python,Arrays,List,我的代码为列表中的名称赋值。如果我的列表中没有一个条目可分配给其中一个名称,我需要知道如何检索或设置默认值。到目前为止,我的代码是: array =[[a],[b],[c],[d]] no1 = array[0] no2 =array[1] no3 =array[2] no4 =array[3] # if array[4] exists: no5 = array[4] else no5 = 0 我试过了- try: array[4] except ValueError:

我的代码为列表中的名称赋值。如果我的列表中没有一个条目可分配给其中一个名称,我需要知道如何检索或设置默认值。到目前为止,我的代码是:

array =[[a],[b],[c],[d]]
no1 = array[0]
no2 =array[1]
no3 =array[2]
no4 =array[3]
# if array[4] exists:
    no5 = array[4]
else
    no5 = 0
我试过了-

try:
    array[4]
except ValueError:
    no5 = 0
但结果显示数组[4]超出了范围

我只是想澄清一下,由于我的代码编写并不出色,基本上我得到了一个程序的三个不同输入,该程序应该读取这些输入,然后将输出写入一个文件。
问题是所有的输入都有不同的数组长度。所以我要做的是让程序检查数组[4]是否有条目,如果该条目不存在,创建条目数组[4]并使其等于零。

您访问的
try
和/
除了
是好的。如果你有一个
索引器
,那么你就很接近了,你只是在
中捕捉到了错误类型的错误,除了
。这会奏效的:

try:
    no5 = array[4]
except IndexError:
    no5 = 0

您应该捕获
索引器
(由
数组[4]
引发的实际错误),而不是
值错误

,而不是
尝试
。您还可以检查数组的长度

def: elem_exists(arr, idx):
   return 0 <= ldx < len(arr)
def:elem_存在(arr,idx):

返回0您试图捕获错误的异常类型

try:
    no5 = array[4]
except IndexError:
    no5 = 0
一个漂亮的单线解决方案是使用


为什么不像下面这样

if len(array) > 4:
    no5 = array[4]
else:
    no5 = 0

对于您正在尝试执行的操作有点困惑,请尝试重新格式化您的代码以使其更易于阅读!我可以说,“超出范围”错误是由于您在只有4个元素时调用了列表中的第5个元素(索引为4)。列表中包含项目的意义在于您不必命名它们。这是编程中一个重要的间接层次。我想你真正想要的是一本字典。字典有专门用于缺少项的方法。此外,字典允许你把名字和项目联系起来。这些答案解决了你的问题吗?如果是,请接受。
if len(array) > 4:
    no5 = array[4]
else:
    no5 = 0