• 列表解析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
    ]
    这样是不是清晰一点了呢~

  • 相关阅读:
    动网16位gb2312md5加密
    开发windows7侧边栏小工具
    MVC文档地址
    关闭FCNs(文件修改监控)
    内存管理
    android笔记一(Button)
    android笔记五ImageButton
    android笔记三FrameLayout
    linux内核各组件的功能介绍
    C++面试题
  • 原文地址:https://www.cnblogs.com/alben-cisco/p/7012675.html
Copyright © 2020-2023  润新知