如何在python中创建一些空的嵌套列表 |
您所在的位置:网站首页 › Python定义空列表 › 如何在python中创建一些空的嵌套列表 |
本问题已经有最佳答案,请猛点这里访问。
我想要一个变量,它是一个嵌套的列表,其中包含许多空列表,我可以稍后填写。看起来像是: 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 |