如何在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