【发布时间】:2021-04-24 03:15:01
【问题描述】:
我有一个列表,有时会包含一个值,有时会包含 2 或 3 个值。我将每个值分配给一个变量。如果列表的分配位置没有值,我希望它是一个空变量。有什么办法可以提高效率吗?
split = line.split(',')
try:
var1 = split[0]
except IndexError:
var1 = None
try:
var2 = split[1]
except IndexError:
var2 = None
try:
var3 = split[2]
except IndexError:
var3 = None
【问题讨论】:
-
听起来像是
dict的用法。你不能使用dict来存储这些值而不是将它们存储在单独的变量中吗? -
这能回答你的问题吗? Multiple try codes in one block
-
var1, var2, var3 = (split + [None] * 3)[:3]. -
如果
line是一个字符串,split[0]将永远存在。那么您期待IndexError有什么原因吗?例如,''.split(',')->['']