我有空的列表并填充了數據。我試圖將列表的最后一個元素存儲到一個變量中。如果列表中有元素,則工作正常。然而,當我傳遞一個空的[]列表中,我得到錯誤,如: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
提交
取消