我在代码
的循环中使用下面一行importer = exporterslist.pop(0)
如果exporterslist没有条目或null
,则返回error: IndexError: pop from empty list
。如何在没有条目的情况下绕过exporterslist?
我能想到的一个想法是,如果exporterslist不为null importer = exporterslist.pop(0)
否则获得循环中的下一个条目。
如果想法是正确的,如何在python中编码?
答案 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()