2

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

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

4 回答 4

9

你为什么不做一个列表字典?

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

也为简洁起见:https ://stackoverflow.com/a/1747827/884453

y = {a : [] for a in range(0,16777216)}
于 2012-08-30T18:59:39.777 回答
6

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

于 2012-08-30T18:59:30.323 回答
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
于 2012-08-30T19:14:20.710 回答
1

答案是:不要。而是创建一个列表,以便您使用 、 等访问变量y[0]y[1]有关信息,请参见此处接受的答案

于 2012-08-30T19:00:11.437 回答