如何在python中创建一些空的嵌套列表

您所在的位置:网站首页 Python定义空列表 如何在python中创建一些空的嵌套列表

如何在python中创建一些空的嵌套列表

2023-05-12 01:21| 来源: 网络整理| 查看: 265

本问题已经有最佳答案,请猛点这里访问。

我想要一个变量,它是一个嵌套的列表,其中包含许多空列表,我可以稍后填写。看起来像是:

1my_variable=[[], [], [], []]

但是,我事先不知道只在创建步骤中需要多少列表,因此我需要一个变量a来确定它。我想到了简单的my_variable=[[]]*a,但它创建了列表的副本,这不是我想要的。

我能做到:

123my_variable=[]   for x in range(a):    my_variable.append([])

但我正在寻找一个更优雅的解决方案(最好是一个线性)。有吗?

相关讨论 我认为你需要重新考虑这个问题,这似乎可以更好地为你的需要使用字典。查阅本帖 my_variable=[[] for _ in xrange(a)] +1对英巴罗丝的评论…我必须转换一些Perl代码(在这里您可以随时实例化任何索引,而Python不允许这样做)。x=[],x[4]=1在Perl中工作,在python中引发错误)。不过,只要把x编成一本字典,它的工作方式也一样:x=,x[4]=1现在工作得很好。您必须对键进行排序,但它们不会单调(即,您可以拥有类似[0,3,4,7]的索引)。 您可能需要的东西:defaultdict(list)。 这是副本

试着理解

1lst = [[] for _ in xrange(a)]

See below:

ZZU1

注:上面是为Python2.X.在Python3.X.,自从xrange以来

1lst = [[] for _ in range(a)] 相关讨论 我一定是昏过去了,我以前没想过要理解清单。:)但是,我想知道为什么Python2.x上的xrange比range好?它们都是一样的,不是吗? @安迪-事实上不是。在python 2.x中,EDOCX1(返回xrange迭代器)比EDOCX1(返回列表)更快。但是,在python 3.x中,range被设置为执行xrange的操作,因此xrange 被删除。这里有一个参考:stackoverflow.com/questions/135041/…

12>>>[[] for x in range(10)] #To make a list of n different lists, do this: [[], [], [], [], [], [], [], [], [], []]

编辑

1[[]]*10

这将给你同样的结果,但名单不是单独的,它们只是同一个论坛的参考。

相关讨论 这将有助于说明这与[[]]*10的区别。 很好。我错过了。 考虑扩展您的答案,向询问者解释为什么这会达到期望的结果,可能会链接到文档。事实上,这只是一点点有用。 @inspectorg4dget它的区别是:stackoverflow.com/questions/12791501/…



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3