在没有超出范围的情况下循环遍历所有列表[x]的最有效方法?

时间:2012-08-24 12:34:42

标签: python list for-loop var

我正在传递一个最多可包含6个条目的列表。如果列表短于6,我需要将每个条目分配给不同的var而不超出范围。

所以我需要:

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

2 个答案:

答案 0 :(得分:2)

改为使用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)。但我不推荐它。

答案 1 :(得分:0)

使用list作为变量名称是个坏主意,因此我将其更改为lst

var_1, var_2, var_3, var_4, var_5, var_6 = lst + [None] * (len(lst) - 6)