切片可能的空列表Python

时间:2017-04-07 19:07:10

标签: python list error-handling slice

我发现两个列表的任何重叠元素(如果存在),并将其转换为整数。

list_converter = intersection[0]

它返回一个只包含一个值或没有值的列表。如果没有价值,我得到:

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

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

4 个答案:

答案 0 :(得分:1)

您可以这样做:

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

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

答案 1 :(得分:0)

list(set(list1).intersection(list2))

答案 2 :(得分:0)

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

if len(intersection) > 0:
    list_converter = intersection[0]
else:
    print "List is empty!"

答案 3 :(得分:0)

如果您想在intersection为空时获取空列表,可以使用:

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