Python 切片可能的空列表

Python 切片可能的空列表,python,list,error-handling,slice,Python,List,Error Handling,Slice,我正在查找两个列表中的任何重叠元素(如果存在),并将其转换为整数 list_converter = intersection[0] 它返回一个只有一个值或没有值的列表。如果没有值,我得到: list_converter = intersection[0] IndexError: list index out of range 有没有更好的方法来执行此操作,或者避免列表为空时出现错误?您可以使用if语句检查列表的长度: list(set(list1).intersection(list

我正在查找两个列表中的任何重叠元素(如果存在),并将其转换为整数

list_converter = intersection[0]
它返回一个只有一个值或没有值的列表。如果没有值,我得到:

    list_converter = intersection[0]
IndexError: list index out of range

有没有更好的方法来执行此操作,或者避免列表为空时出现错误?

您可以使用if语句检查列表的长度:

list(set(list1).intersection(list2))
if len(intersection) > 0:
    list_converter = intersection[0]
else:
    print "List is empty!"
您可以简单地执行以下操作:

if intersection:
    list_converter = intersection[0]
else:
    print "No intersection" # Or whatever you want to do if there isn't an intersection

在python中,空列表(即
[]
)的计算结果为
False
,因此可以检查空列表是否使用其真值

如果希望在交叉口为空时获取空列表,可以使用:

list_converter = intersection[0:1]
当切片的结尾超出列表的结尾时,不会引发错误:

l = [1, 2 ,3]
l[0:1]
# [1]

l = []
l[0:1]
#[]
如果需要其他内容,请使用
try/except
块:

try:
    list_converter = intersection[0]
except IndexError:
    list_converter = whatever you want

当列表为空时,您希望它返回什么?请发布输入和预期输出。这样就不会导致错误。我同意它不返回任何内容。这样做会修复索引器吗?请提供更多细节。