我有空的列表并填充了数据。我试图将列表的最后一个元素存储到一个变量中。如果列表中有元素,则工作正常。然而,当我传递一个空的[]列表中,我得到错误,如:IndexError: list index out of range。我应该为 [] 使用哪种语法?ids = [ 'abc123', 'ab233', '23231ad', 'a23r2d23' ]ids = []# I tried these for emptyfinal = [ids if [] else ids[-1]] #error# final = [ids if ids == None else ids == ids[-1]] # error# final = [ids if ids == [] else ids == ids[-1]] # gives [[]] instead of []print(final)基本上,如果一个空列表在 ids 中,我需要它给 []。如果有元素,则给出最后一个有效的元素。
3 回答

慕桂英4014372
TA贡献1871条经验 获得超13个赞
这是执行此操作的一种方法:
final = ids[-1] if ids else None
(当列表为空时,替换None
为您希望采用的值final
。)

UYOU
TA贡献1878条经验 获得超4个赞
您可以通过以下表达式检查空列表。
data = []
if data: #this returns False for empty list
print("list is empty")
else:
print("list has elements")
所以你可以做的是。
final = data[-1] if data else []
print(final)

莫回无
TA贡献1865条经验 获得超7个赞
final = ids[-1] if len(ids) > 0 else []
这将处理眼前的问题。请通过类材料或教程的工作有点多为个人技术。例如,你的那句ids if []
犯规”做你(现在)似乎认为:它并没有检查ids
是否为空表-它所做的就是看空列表是否是‘truthy’,和一个空列表评估为False
。
添加回答
举报
0/150
提交
取消