在python中创建一个名称中带有变量的列表

时间:2012-08-30 18:57:11

标签: python list for-loop

我正在尝试使用python中的for循环生成一系列(空)列表,并且我希望列表的名称包含变量。例如y0,y1,y2等。理想情况下看起来像这样:

for a in range (0,16777216):
global y(a)=[]

4 个答案:

答案 0 :(得分:7)

为什么不做列表字典?

y = {}
for a in range (0,16777216):
    y[a] = []

也是为了简洁:https://stackoverflow.com/a/1747827/884453

y = {a : [] for a in range(0,16777216)}

答案 1 :(得分:6)

不确定这是否是您想要的,但是您不能通过简单地创建列表列表来模拟相同的行为?因此your_list[0]将对应y0

答案 2 :(得分:1)

答案是:不要。而是创建一个列表,以便您使用y[0]y[1]等访问变量。有关信息,请参阅the accepted answer here

答案 3 :(得分:1)

也许你应该看一下defaultdict

form collection import defaultdict

# This will lazily create lists on demand
y = defaultdict(list)

此外,如果您希望键上的约束覆盖默认的__getitem__函数,如下所示...

def __getitem__(self, item):
    if isintance(item, int) and 0 < item < 16777216:
         return defaultdict.__getitem__(self, item)
    else:
         raise KeyError