Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中动态创建列表的最佳方法是什么?_Python_Dynamic - Fatal编程技术网

在Python中动态创建列表的最佳方法是什么?

在Python中动态创建列表的最佳方法是什么?,python,dynamic,Python,Dynamic,我的用户将创建任意数量的人类对象,并根据自己的喜好将其分组。(创建的组数将被跟踪)我想为他们创建的每个组创建一个列表,供以后使用。如果我不知道将有多少组,如何为每个组创建一个列表 我想到了类似以下的事情: for i in range(num_groups): eval('group_' + str(i) + ' = []') 这将为名为group_i的组i创建一个空列表。我已经读到eval在大多数情况下都不应该使用,所以我想知道是否有更好的方法。你考虑过吗 groups = [[]

我的用户将创建任意数量的人类对象,并根据自己的喜好将其分组。(创建的组数将被跟踪)我想为他们创建的每个组创建一个列表,供以后使用。如果我不知道将有多少组,如何为每个组创建一个列表

我想到了类似以下的事情:

for i in range(num_groups):
    eval('group_' + str(i) + ' = []')
这将为名为group_i的组i创建一个空列表。我已经读到eval在大多数情况下都不应该使用,所以我想知道是否有更好的方法。

你考虑过吗

groups = [[] for i in range(num_groups)]
而不是

for i in range(num_groups):
    eval('group_' + str(i) + ' = []')

通过这种方式,您可以声明
num\u groups
列表。

您可以使用列表字典,这样“group\u i”形式的每个名称都将在该字典中保留一个新列表(“group\u i”是键)。若你们想得到所有的列表,你们只需要拥有所有的键并找到相应的值就可以到达特定的列表

减容措施如下:

all_groups = {}
for i in range(num_groups):
    new_group_name = "group_" + str(i)
    all_groups[new_group_name] = []
以便将项目添加到特定组中

all_groups[group_name].append(item)
您可以通过访问字典的所有键来访问所有组名

all_groups.keys()

你知道列表是一件事吗?我确实知道。我不知道这会有什么帮助。我不知道如何根据列表的编号访问每个列表。@JerAnsel通过调用
groups[I]
来访问,其中
I
是它的编号。我尝试了一下,收到了一个错误:生成器对象不可订阅。尽管如此,我还是接受了这个答案,谢谢@杰兰塞尔:是的,不幸的是:)我已经修改了代码,只是为了防止有人使用它。