zoukankan      html  css  js  c++  java
  • 将二维数据转化为一位数组(多重生成器小结)

    嵌套生成器方法:

    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]

  • 相关阅读:
    Httpclient请求数据(post)
    实现定位(无基本地图)
    Httpclient请求数据
    带参数路径的刷新和加载
    AsyncTask异步交互和httpurlconnection结合使用
    判断网络状态
    Android数字签名
    app加固
    定位和xml解析和gson解析加上拉加载,下拉刷新
    下载app后自动安装程序
  • 原文地址:https://www.cnblogs.com/luocodes/p/13378992.html
Copyright © 2011-2022 走看看