zoukankan      html  css  js  c++  java
  • python:列表生成式的学习

    看个例子:

    # 定义一个列表
    l=[1,2,3,4,5]
    #()用于创建一个list,结果依次返回列表l的元素的平方,返回list
    s=[i*i for i in l]
    # 打印列表s
    print(s)
    # ()用于创建一个生成器,结果依次返回列表l的元素的平方,返回generator
    s1=(i*i for i in l)
    # 以列表形式打印generator的元素值
    print(list(s1))
    # 查看s1的类型
    print(type(s1))

    输出:

    [1, 4, 9, 16, 25]
    [1, 4, 9, 16, 25]
    <class 'generator'>

    1、列表生成式即List Comprehensions,如何生成列表:

    a=list(range(1,11))
    print(a)
    print(type(a))

    输出:

    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    <class 'list'>

    2、如果要生成一个[1*1,2*2,......,10*10]的列表:

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

    输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    3、根据列表[1*1,2*2,......,10*10],帅选出偶数的平方的一个列表:

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

    输出:[4, 16, 36, 64, 100]

    4、使用两层循环,可以生成全排列

    a=[m+n for m in "xyz" for n in "ABC"]
    print(a)

    输出:['xA', 'xB', 'xC', 'yA', 'yB', 'yC', 'zA', 'zB', 'zC']

    三层循环很少用到

    5、for循环迭代一个dict,dict的items可以同时迭代key和value,使用两个变量生成一个list:

    a={'a':'A','b':'B','c':'C'}
    b=[key +'='+value for key,value in a.items()]
    print(b)

    输出:['a=A', 'b=B', 'c=C']

    6、把一个list所有的字母变成小写:

    a={'Abc','Hello','APPLE'}
    b=[i.lower() for i in a]
    print(b)

    输出:['apple', 'abc', 'hello']

    假如list中含有数字则会报错:AttributeError: 'int' object has no attribute 'lower'

    a={'Abc','Hello','APPLE',18}
    b=[i.lower() for i in a if type(i)==str]
    print(b)

    输出:['abc', 'hello', 'apple']

    业精于勤而荒于嬉,勤劳一日,可得一日安眠;勤劳一生,可得幸福一生。因为,我们努力了;因为,天道酬勤。
  • 相关阅读:
    Qt 资料大全
    Node.js+websocket+mongodb实现即时聊天室
    win系统下nodejs安装及环境配置
    nginx关于 error_page指令详解.md
    移动前端开发之viewport,devicePixelRatio的深入理解
    Iphone各个型号机型的详细参数,尺寸和dpr以及像素
    H5前端的关于像素解释
    从Pc转向H5开发遇到的适配问题思考
    Safari无痕模式下,storage被禁用问题
    滴滴开源 Vue 组件库— cube-ui
  • 原文地址:https://www.cnblogs.com/Mr-choa/p/12634223.html
Copyright © 2011-2022 走看看