zoukankan      html  css  js  c++  java
  • python之列表生成式

     列表生成式即List    Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。

    列表生成式的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是0个或多个for或者if语句。列表表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以if和for语句为上下文的表达式运行完成之后产生

    格式:

    variable    =    [out_exp    for    out_exp    in    input_list    if    out_exp    ==    2]

    练习:

    1. 生成一个列表,列表元素分别为 [1*1,2*2,3*3……n*n],假设n = 10。

    一般方法:

    list1 = []
    for i in range(1,11):
        list1.append(i*i)

    列表生成式:

    list1 = [i*i for i in range(1,11)]

    2.接着上一个需求,要求返回的序列中不存在偶数项:

    一般方法:

    list = []
    for i in range(1,11):
        if (i*i) % 2 !=0:  
            list.append(i*i)

    列表生成式:

    list2 = [i*i for i in range(1,11) if (i*i) %2 !=0 ]

    3. 字符串s1 ='ABC',字符串 s2 = '123',要求:生成序列 A1 A2 A3 B1 B2 B3 C1 C2 C3

    一般方法:

    s1='abc'
    s2='123'
    list = []
    for i in s1:
        for o in s2:
            list.append(i+o)
    print(list)

    列表生成式:

    s1='abc'
    s2='123'
    list2 = [i+o for i in s1 for o in s2]

    4. 将3x3的矩阵li1转化成一个数组(列表),且使该数组中仅仅包含偶数:

    一般方法:

    list = [[1,2,3],[4,5,6],[7,8,9]]
    list2 = []
    for b in list:
      for a in b:
            if a % 2 == 0:
                list2.append(a)

    列表生成式:

    list = [[1,2,3],[4,5,6],[7,8,9]]
    list2 = [a for b in list for a in b if a %2 ==0]
    print(list2)

    5. 找出1-10之间所有的偶数,并且返回一个列表(这个列表中含以这个偶数为半径的圆的面积)

    方法一:使用列表生成式,计算圆的面积要用到圆周率参数,需要导入math模块:

    import math
    print([math.pi *r *r] for r in range(2,11,2))

    方法二:  定义一个求圆面积的函数,然后在列表生成式中直接调用函数,从而求出序列中符合条件的半径的面积:

    import math
    def sour(r):
        res = math.pi*r*r
        return res
    print([sour(r)*r*r for r in range(2,11,2)])

     

  • 相关阅读:
    Hadoop 无法实现HA
    Hive 常见设置
    Hive 查看表的文件个数(用于分析小文件)
    Hive 窄表转宽表 , 长表转宽表
    MapReduce 实现分片取TopN 再Reduce取TopN
    Hbase 如何用对rowkey加盐
    VMware虚拟机安装Ubuntu操作系统
    使用springboot进行文件的上传下载操作(有源码)
    使用图片定位图片拍摄的具体位置
    vue实现Element-ui省市区三级联动(包含省市区文件和省市文件)
  • 原文地址:https://www.cnblogs.com/zhaobobo001/p/14432445.html
Copyright © 2011-2022 走看看