Python 命名列表列表

Python 命名列表列表,python,list,Python,List,我需要在python脚本中创建一个命名列表列表 我要做的是创建一个mklist方法,该方法将获取列表中的字符串,并创建为每个字符串命名的列表。因此,从这里: a = "area" for i in range(1, 37): x = str(a) + str("%02d" % (i,)) ' '.join(x.split()) 我想得到以下信息: area01 = [] area02 = [] area03 = [] area04 = [] area05 = [] area0

我需要在python脚本中创建一个命名列表列表

我要做的是创建一个mklist方法,该方法将获取列表中的字符串,并创建为每个字符串命名的列表。因此,从这里:

a = "area"

for i in range(1, 37):
    x = str(a) + str("%02d" % (i,))
    ' '.join(x.split())
我想得到以下信息:

area01 = []
area02 = []
area03 = []
area04 = []
area05 = []
area06 = []
area07 = []
area08 = []
area09 = []
area10 = []
area11 = []
area12 = []
area13 = []
area14 = []
area15 = []
area16 = []
area17 = []
area18 = []
area19 = []
area20 = []
area21 = []
area22 = []
area23 = []
area24 = []
area25 = []
area26 = []
area27 = []
area28 = []
area29 = []
area30 = []
area31 = []
area32 = []
area33 = []
area34 = []
area35 = []
area36 = []   
有什么建议吗?我好像不明白。谢谢
E

这需要一个列表:

area = [[] for i in range(37)]
area = {i: [] for i in range(1, 37)}        # Python 2.7+
area = dict((i, []) for i in range(1, 37))  # Python 2.6 or earlier
或一份清单:

area = [[] for i in range(37)]
area = {i: [] for i in range(1, 37)}        # Python 2.7+
area = dict((i, []) for i in range(1, 37))  # Python 2.6 or earlier
然后,您可以通过以下方式访问每个项目:

area[1]
area[2]
...
area[36]

这需要一个列表列表:

area = [[] for i in range(37)]
area = {i: [] for i in range(1, 37)}        # Python 2.7+
area = dict((i, []) for i in range(1, 37))  # Python 2.6 or earlier
或一份清单:

area = [[] for i in range(37)]
area = {i: [] for i in range(1, 37)}        # Python 2.7+
area = dict((i, []) for i in range(1, 37))  # Python 2.6 or earlier
然后,您可以通过以下方式访问每个项目:

area[1]
area[2]
...
area[36]
见问题

a = "area"
for i in range(1, 37):
   x = str(a) + str("%02d" % (i,))
   locals()[x] = []
如果希望列表是全局的,请使用globals()

这将为您提供空列表变量area01到area36

你应该注意到,仅仅因为它可以做到,并不意味着它应该做到。更好/更具可读性的解决方案是:

area = [[] for i in range(37)]
(参见John的解决方案)

参见问题

a = "area"
for i in range(1, 37):
   x = str(a) + str("%02d" % (i,))
   locals()[x] = []
如果希望列表是全局的,请使用globals()

这将为您提供空列表变量area01到area36

你应该注意到,仅仅因为它可以做到,并不意味着它应该做到。更好/更具可读性的解决方案是:

area = [[] for i in range(37)]
(参见John的解决方案)

类似于:

a = "area"
x = [ "%s%02d = []" % (a, i) for i in range(1,37) ]
print('\n'.join(x))
如果希望在当前Python会话中定义列表,则使用

for i in range(0, 36):
    exec(x[i])
并与

print area01
print area35
但是请注意,类似于:

a = "area"
x = [ "%s%02d = []" % (a, i) for i in range(1,37) ]
print('\n'.join(x))
如果希望在当前Python会话中定义列表,则使用

for i in range(0, 36):
    exec(x[i])
并与

print area01
print area35

但是请注意

什么是“命名列表”?你是说口授吗?哪一部分你不能“得到”?另外,尽管代码是多余的,但它似乎可以用来生成名称。您是使用Python代码生成Python代码,还是尝试在脚本文件中创建这些列表?在后一种情况下,您可能不应该这样做。如果您尝试动态创建变量,答案是:。您所说的“命名列表”是什么意思?你是说口授吗?哪一部分你不能“得到”?另外,尽管代码是多余的,但它似乎可以用来生成名称。您是使用Python代码生成Python代码,还是尝试在脚本文件中创建这些列表?在后一种情况下,您可能不应该这样做。如果您试图动态创建变量,一个非常类似的问题的答案是:。考虑到我回答了字面上的问题,我看不出我怎么可能应该被拒绝考虑到我回答了字面上的问题,我看不出我怎么会值得投反对票