我想简明扼要地做以下几点:
n = 3
lst1 = [[] for _ in range(n)]
lst2 = [[] for _ in range(n)]
lst3 = [[] for _ in range(n)]基本上生成一些相同大小的空列表。
我在找这条单线。我尝试使用zip和各种itertools,但我必须承认这组特性是我与Python的薄弱环节之一。
发布于 2016-12-12 12:20:26
您也可以通过额外的一层列表理解或生成器表达式来实现同样的目标,然后将其解压缩为变量:
>>> n = 3
>>> lst1, lst2, lst3 = ([[] for _ in range(n)] for _ in range(3))
>>> lst1
[[], [], []]发布于 2016-12-12 12:25:34
与其将列表存储在不同的变量中,我建议将所有列表包装在单个列表中。您的代码应该如下所示:
>>> num_of_list, size_of_list = 5, 3
>>> my_list = [[[] for _ in range(size_of_list)] for _ in range(num_of_list)]my_list持有的值为:
[
[[], [], []],
[[], [], []],
[[], [], []],
[[], [], []],
[[], [], []]
] 对于访问每个子列表,您可以简单地将索引用作:
>>> my_list[0]
[[], [], []]
>>> my_list[1]
[[], [], []]如果必须将值存储在单独的变量中,则可以将主列表的内容解压缩为单个变量,如下所示:
list1, list2, list3, list4, list5 = my_list发布于 2016-12-12 15:23:47
n = 3
for i in range(1, n+1):
exec("lst%s = [[] for _ in range(%s)]" % (i, n))https://stackoverflow.com/questions/41100719
复制相似问题