我正在尝试使用列表重写此代码。如果 I > 4,Raise index 会使程序崩溃。如何使用列表使此代码更小?任何帮助表示赞赏。
if (I == 0):
J = -12
elif (I == 1):
J = 24
elif (I == 2):
J = -6
elif (I == 3):
J = 193
elif (I == 4):
J = 87
else:
raise IndexError
只需使用具有以下可能值的列表J
:
J_values = [-12, 24, -6, 193, 87]
J = J_values[I]
如果超出范围,则会引发IndexError
异常I
,因此大于 4:
>>> J_values = [-12, 24, -6, 193, 87]
>>> J_values[2]
-6
>>> J_values[5]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
负索引将从列表末尾开始计算;-1
作为最后一个元素:
>>> J_values[-1]
87
除了@Martijn Pieters 的回复,如果您的值遵循特定模式,您可以在创建列表时使用 range() :
>>> J_VALUES = range(15)
>>> J_VALUES
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
>>>
>>> J_VALUES = range(-5, 15, 2)
>>> J_VALUES
[-5, -3, -1, 1, 3, 5, 7, 9, 11, 13]