我通过一个可能有多达6个条目的列表。我需要每个条目到一个不同的变种分配不出去的范围如果列表短于6在不超出范围的情况下循环遍历所有列表[x]的最有效方法?
所以我需要:
var_1 = list[0]
var_2 = list[1]
var_3 = list[2]
var_4 = list[3]
var_5 = list[4]
var_6 = list[5]
了var的能来预分配的无或(优选地)做
var 3 = list[2] or None
我通过一个可能有多达6个条目的列表。我需要每个条目到一个不同的变种分配不出去的范围如果列表短于6在不超出范围的情况下循环遍历所有列表[x]的最有效方法?
所以我需要:
var_1 = list[0]
var_2 = list[1]
var_3 = list[2]
var_4 = list[3]
var_5 = list[4]
var_6 = list[5]
了var的能来预分配的无或(优选地)做
var 3 = list[2] or None
改用dict。
lst = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']
dct = {'var_%s'%(i+1) : val for i, val in enumerate(lst)}
dct['var_1'] #accessing fist variable
>>> 'a'
dct['var_11']
>>> 'k'
dct['var_12']
>>> KeyError: 'var_12'
注意:如果你真的,真的坚持在具有这些变量,你可以做locals().update(dct)
。但我不推荐它。
这是一个糟糕的主意,用list
作为变量名,所以我把它改成lst
var_1, var_2, var_3, var_4, var_5, var_6 = lst + [None] * (len(lst) - 6)
为什么不使用字典? –
并且不要使用像'list'这样的Python类型来命名变量 –
没有字典,因为我需要保留条目的顺序。 – chrickso