Python:从空列表中弹出

时间:2015-07-04 02:57:45

标签: python-2.7

我在代码

的循环中使用下面一行
importer = exporterslist.pop(0)

如果exporterslist没有条目或null,则返回error: IndexError: pop from empty list。如何在没有条目的情况下绕过exporterslist?

我能想到的一个想法是,如果exporterslist不为null importer = exporterslist.pop(0) 否则获得循环中的下一个条目。 如果想法是正确的,如何在python中编码?

5 个答案:

答案 0 :(得分:12)

你走在正确的轨道上。

if exporterslist: #if empty_list will evaluate as false.
    importer = exporterslist.pop(0)
else:
    #Get next entry? Do something else?

答案 1 :(得分:4)

您也可以使用try / except

try:
    importer = exporterslist.pop(0)
except IndexError as e:
    print(e)

如果你总是从前面弹出,你可能会发现deque更好的选择,因为deque.popleft()是0(1)

答案 2 :(得分:4)

这一个......

<强> exporterslist.pop(0) if exporterslist else False

..与@ nightshadequeen的接受答案有点相同:

>>> exporterslist = []   
>>> exporterslist.pop(0) if exporterslist else False   
False

或者你可以用它来得不到任何回报:

<强> exporterslist.pop(0) if exporterslist else None

>>> exporterslist = [] 
>>> exporterslist.pop(0) if exporterslist else None
>>> 

答案 3 :(得分:1)

使用此:

if len(exporterslist) != 0:
    importer = exporterslist.pop(0)

答案 4 :(得分:0)

你也可以.pop()只有当列表中有项目时才确定列表的长度是否为1或更多:

if len(exporterslist) > 1:
    importer = exporterslist.pop()