当前位置: 首页 > 面试题库 >

在Python中将多维列表转换为一维列表

澹台锐
2023-03-14
问题内容

像这样的多维列表l=[[1,2],[3,4]]可以通过执行转换为一维列表sum(l,[])。谁能解释一下这是怎么回事?

响应者说,该技术只能用于“平化”二维列表-
不适用于较高的多维列表。但是,如果重复的话,确实如此。例如,如果A是3D列表,则sum(sum(A())[[]),[])将A展平为一维列表。


问题答案:

sum使用+运算符将一个序列加在一起。例如sum([1,2,3]) == 6。第二个参数是一个可选的起始值,默认为0 sum([1,2,3], 10) == 16

在您的示例中,它确实[] + [1,2] + [3,4]+2个列表连接在一起。因此结果是[1,2,3,4]

空列表是第二个参数,sum因为如上所述,默认值是将sum其添加为0(即0 + [1,2] + [3,4]),这将导致 不支持+的操作数类型:“
int”和“ list”

这是帮助的相关部分sum

sum(sequence [,start])-> value

返回一个数字序列(非字符串)的总和加上参数“ start”的值(默认为0)。

注意

如wallacoloo所言,这 不是
拉平任何多维列表的通用解决方案。由于上述行为,它仅适用于一维列表。

更新资料

有关扁平化1级嵌套的方法,请参阅itertools页面上的以下食谱:

def flatten(listOfLists):
    "Flatten one level of nesting"
    return chain.from_iterable(listOfLists)

请注意,配方返回一个itertools.chain对象(可迭代),而另一个问题的答案返回一个generator对象,因此,list如果您要完整列表而不是对其进行遍历,则需要在调用中包装这两个对象。例如list(flatten(my_list_of_lists))



 类似资料:
  • 本文向大家介绍python实现将一维列表转换为多维列表(numpy+reshape),包括了python实现将一维列表转换为多维列表(numpy+reshape)的使用技巧和注意事项,需要的朋友参考一下 如题,我们直接使用numpy 运行结果为: 这样,我们就将一维列表转换为二维列表啦,俗称列表中的列表。 以上这篇python实现将一维列表转换为多维列表(numpy+reshape)就是小编分享给

  • 我的清单如下: 我需要将上面列表中的数据添加到下面的列表中,其中第0行应该有值test1和test2。第1行应该有test3和test4

  • 我有一个对象列表(选择查询的结果),我想将其转换为一个数组,并且我想将查询的每一列放入数组中的一列中。我在论坛上尝试了许多解决方案,但我没有找到解决方案。 在我的bean中,我有以下列表: 现在我想要的是将 List()的每一列放在一个多维数组列表中,这样就好像我想访问数组列表中的特定单个值一样,我就这样做了。

  • 问题内容: 我有一个Object的二维数组。所以我有。将其转换为Java 的最佳方法是什么? 问题答案: 对于任何二维数组,这都是一种不错的方法,假设您希望按以下顺序进行操作: [[array [0] -elems],[array [1] elems] …]

  • 问题内容: 我正在尝试将嵌套列表转换为2d数组。 我想把它做成一个。我尝试了以下方法: 有没有可行的方法?请注意,直到运行时我才知道列表的大小,并且列表可能会锯齿。 问题答案: 没有简单的内置方法可以执行所需的操作,因为您只能返回存储在list中的元素数组,在您的情况下也可以是list。 最简单的解决方案是创建二维数组,并用每个嵌套列表的结果填充它。 (如果您像使用Alex一样将Java8与流一起

  • 问题内容: 我想初始化一个多维列表。基本上,我想要一个10x10的网格-10个列表的列表,每个列表包含10个项目。 每个列表值都应初始化为整数0。 单行执行此操作的明显方法:将不起作用,因为它会生成一个包含10个引用的列表,该列表引用一个列表,因此更改任何行中的项都会更改所有行中的项。 我看过的文档讨论了用于复制列表的方法,但是在使用乘法器时仍然无法使用:与效果相同。 除了创建s循环之外,是否有一