首页 > 编程语言 > 详细

将二维数据转化为一位数组(多重生成器小结)

时间:2020-07-26 10:53:49      阅读:66      评论:0      收藏:0      [点我收藏+]

嵌套生成器方法:

ab = [[1,2,3], [5,8,9,0], [7,8,9]]
print([i for item in ab for i in item]) 
#[1, 2, 3, 5, 8, 9, 0, 7, 8, 9]

 

原理:将ab二维数组先转换成生成器,在将这个生成器继续转换成更细(一维)的生成器

同理,也可将三维数组转换成二维数组

ab = [[[1,2,3], [5,8,9,0], [7,8,9]],[[1,1,1], [5,8,9,0], [7,8,9]]]
print([i for item in ab for i in item]) 
#[[1, 2, 3], [5, 8, 9, 0], [7, 8, 9], [1, 1, 1], [5, 8, 9, 0], [7, 8, 9]]

 

所以我们也可将三维数组转换成一维数组

ab = [[[1,2,3], [5,8,9,0], [7,8,9]],[[1,1,1], [5,8,9,0], [7,8,9]]]
print([x for item in ab for i in item for x in i]) 
#[1, 2, 3, 5, 8, 9, 0, 7, 8, 9, 1, 1, 1, 5, 8, 9, 0, 7, 8, 9]

 

如果参数变成这样呢?

ab = [[1,2,3], [4,5], [7,8,9]]
print([i for i in ab for x in i])
#[[1, 2, 3], [1, 2, 3], [1, 2, 3], [4, 5], [4, 5], [7, 8, 9], [7, 8, 9], [7, 8, 9]]

当生成器又产生新的生成器,那么不管有没有改变他原有的生成器,都会使原有的生成器增加它本身长度的倍数。

例:[1,2,3]的长度为3,那么两遍生成器后就为[1, 2, 3], [1, 2, 3], [1, 2, 3]

 

将二维数据转化为一位数组(多重生成器小结)

原文:https://www.cnblogs.com/luocodes/p/13378992.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!