zoukankan      html  css  js  c++  java
  • python笔记21-列表生成式

    前言

    python里面[]表示一个列表,快速生成一个列表可以用range()函数来生成。
    对列表里面的数据进行运算和操作,生成新的列表最高效快速的办法,那就是列表生成式了。

    range()

    1.一个连续的数字类型列表,比如[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],可以用range生成

    # coding:utf-8
    
    # a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    
    b = range(1, 11)
    print(b)  # 结果 range(1, 11)
    print(type(b))
    print(list(b))    # 转list
    

    2.python3直接打印b会显示range(1, 11)对象,并不是直接显示应该列表,如果想显示列表,可以用list()转下

    列表生成式

    1.如果想对列表里面的数据进行运算后重新生成一个新的列表,如[11, 22, 33 ... 1010],按平常思维就是先定义一个列表c,然后for循环挨个运算,算完了再append添加到c,最后c就是新的列表了

    # 对列表数平方
    
    b = range(1, 11)
    c = []
    for i in b:
        c.append(i*i)
    print(c)
    
    # 结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    

    2.接下来看看用列表生成式如何去实现

    # 对列表数平方
    
    b = range(1, 11)
    c = [x*x for x in b]
    print(c)
    
    # 结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    

    3.列表生成式语法是固定的,[]里面for 前面是对列表里面数据的运算操作,后面跟平常for循序一样遍历去读取。运行后会自动生成新的列表

    带if判断

    1.如果想对一个列表里面的数据筛选,比如:[1, 3, -3, 4, -2, 8, -7, 6],找出大于0的数,按正常思维可以for循环挨个判断,符合条件的放到新的列表

    c = [1, 3, -3, 4, -2, 8, -7, 6]
    d = []
    for i in c:
        if i > 0:
            d.append(i)  # 添加到列表d
    print(d)
    
    # 结果:[1, 3, 4, 8, 6]
    

    2.接下来可以看看列表生成式,写出更加简洁优雅的代码,快速高效!

    # 提取大于0的数
    c = [1, 3, -3, 4, -2, 8, -7, 6]
    d = [x for x in c if x > 0]
    print(d)
    
    # 运行结果[1, 3, 4, 8, 6]
    
    

    多个参数

    1.前面列表生成式都只传一个参数x,如果有两个列表如何去运算呢?
    a = [1, 2, 3, 4, 5]
    b = ["a", "b", "c", "d", "e"]
    如何得出c = ["a1", "b2", "c3", "d4", "e5"]

    # coding:utf-8
    
    a = [1, 2, 3, 4, 5]
    b = ["a", "b", "c", "d", "e"]
    
    # 多个参数列表生成式
    c = [str(x)+str(y) for x, y in zip(b, a)]
    print(c)
    
    # 结果:['a1', 'b2', 'c3', 'd4', 'e5']
    

    2.列表生成式的语法是非常优雅的,学会了可以少写很多代码。理解起来也并不难,多联系几次就能熟练掌握了。

    python自动化交流 QQ群:779429633

  • 相关阅读:
    搞笑的菜名
    sad news
    转载:比尔盖茨给adobe CEO的五点意见(歪版)/ 很搞笑 ;)
    [ZZ]TDSCDMA试商用网已经建成 开始向用户放号
    关于Java IDE
    候捷要来南京了吗?
    读书笔记:《Java2 教程》(二)
    [ZZ]当今世界十大定律
    久违了,博客园
    解决小型局域网中xp系统的机器不能共享资源的问题
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/9274362.html
Copyright © 2011-2022 走看看