• 列表解析2


    list comprehension(列表推倒)
    列表推倒:从一个列表去产生另一个列表

    案例:
    #产生一个0-20的列表
    nums = [n for n in range(0,21)]

    #对nums进行操作,中间的每一个元组*2,构成一个新的列表

    new_nums = []

    for i in nums:
    new_nums.append(i*2)

    操作步骤:
    1、定义一个new_nums的空列表
    2、遍历nums,每一个元素**2
    3、对每一个元素操作后追加到new_nums列表中,最终生成列表new_nums


    使用列表推倒的方法完成此工作:
    new_nums = [ n * 2 for n in nums ]

    每一个列表推倒都可以使用for循环地方法来实现,反之不成立。


    练习:
    随机参数一个包含列表,列表中包含{1-100}范围内任意10个数字,对这个列表进行操作,得出该10个数字内偶数的新列表。

    实现代码——
    from random import randint

    nums = []

    for i in range(10):
    nums.append(randint(1,101))


    #定义一个偶数列表

    even_nums = []

    #通过循环,过滤偶数

    for i in nums:
    if i % 2 == 0:
    even_nums.append(i)

    通过列表推倒,改进代码
    from random import randint

    nums = []

    for i in range(10):
    nums.append(randint(1,101))


    even_nums = [n for n in nums if n %2 == 0]

    print(even_nums)

    进一步改进:
    from random import randint


    nums = [randint(1,101) for i in range(9)]

    even_nums = [n for n in nums if n %2 == 0]

    两个列表合二为一
    from random import randint

    even_nums =[n for n in [randint(1,101) for i in range(9)] if n % 2 ==0]

    这样是不是可读性比较差,那么就在括号间进行换行
    even_nums =
    [
    n
    for n in
    [randint(1,101)
    for i in range(9)
    ]
    if n % 2 ==0
    ]
    这样是不是清晰一点了呢~

  • 相关阅读:
    windows10 gcc编译C程序(简单编译)
    windows10 下 gcc/g++ 的安装
    神经网络内在逻辑:没打开的AI“黑匣子”
    tensorflow的变量作用域
    如何手画三相电相(线)电压(流)波形图
    pycharm如何添加固定代码块
    pycharm的个性化设置
    zookeeper学习三
    zookeeper学习二
    es中对mapping的理解
  • 原文地址:https://www.cnblogs.com/alben-cisco/p/7012675.html
Copyright © 2020-2023  润新知