zoukankan      html  css  js  c++  java
  • python中的生成器表达式,各种推导式及内置函数

    一:列表推导式

    表现形式:[变量(加工后的数据) for 变量i in 可迭代的数据类型]

    例一:30以内所有能被3整除的数

    multiples = [i for i in range(30) if i % 3 is 0]
    print(multiples)
    # Output: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

    例二:30以内所有能被3整除的数的平方

    l1=[i**2 for i in range(1,31) if i%3==0]
    print(l1)

    例三:找到嵌套列表中名字含有两个‘e’的所有名字

    names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
              ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
    l1=[name for i in names for name in i if name.count("e")==2]
    print(l1)

    ps:把列表解析的[]换成()得到的就是生成器表达式,其中,列表推导式比较直观,占内存,生成器表达式不容易看出内容,省内存.

    l1=(i**2 for i in range(1,31) if i%3==0)
    print(l1)    #<generator object <genexpr> at 0x000001DE23D4DE58>
    print(l1.__next__())
    二:字典推导式
    例一:将一个字典的key和value对调
    mcase = {'a': 10, 'b': 34}
    mcase_frequency = {mcase[k]: k for k in mcase}
    print(mcase_frequency)

     三:集合推导式

    计算列表中每个值的平方,自带去重功能。

    squared = {x**2 for x in [1, -1, 2]}
    print(squared)
    # Output: set([1, 4])

    四:python中的内置函数

    1,print的用法

    #1,去掉换行符
    print('666',end='')
    print('666')
    #2,添加分割符
    print(1,2,3,4,5,sep='|')      #1|2|3|4|5
    #3,写入文件
    f = open('file','w',encoding='utf-8')
    print(666,file=f)
    f.close()

    2,

    locals() 将局部的变量储存起来
    globals() 将全局的变量,函数名,等等 储存起来.

    def func():
        name = 'alex'
        print(locals())
        print(globals())
    func()

    3  , help(xxx) 将你查询的对象所有信息都拿出来.

    4 , abs()取绝对值

    print(abs(-1))
    print(abs(1))

    5, 最大值和最小值

    #1求绝对值最大的数
    ret = max(1,2,-3,key=abs)
    print(ret)
    #2求最小值
    ret = min([1,2,3])
    print(ret)

    6,sum 求和

    a=sum([1,2,8])
    print(a)
    #计算列表中的和,再附加一个数的和
    ret = sum([1,2,3],10)
    print(ret)

    7,callable 判断此变量是不是函数名

    name = 'alex'
    print(callable(name))
    
    def func():
        print(666)
    print(callable(func))

    8, hash() 通过哈希表的规则,将对象转换成哈希值

    print(hash('fdsakfhdsafsda'))
    print(hash('fd'))
    print(hash(('a','b')))
    print(hash(True))

    9, all 可迭代对象里面的所有的值转化成bool值如果都是True则,返回True

    print(all([1,2,3,0]))

    10, 进制转换

    #十进制转化成二进制
    print(bin(100))
    #将十进制转化成八进制
    print(oct(9))
    #将十进制转化成十六进制
    print(hex(33))

    11,数据类型 float ,complex(复数)

    print(1.35432,type(1.35432))
    print(float(3))

    12, divmod() 分页

    print(divmod(7,2)) #(商,余数)

    13, enumerate(iterable,start 起始值) 枚举

    l = ['手机','电话','娃娃',]
    for k,v in enumerate(l,1):
    print(k,v)

    14, eval 有返回值 除去字符串两边的引号,返回里面的内容
             exec 没有返回值 除去字符串两边的引号,执行里面的代码

    s = "{'name':'alex'}"
    print(eval(s),type(eval(s)))    #{'name': 'alex'} <class 'dict'>
    s1 = "1+2+3+4"
    print(eval(s1))       #10
    code = '''for i in range(10):
        print(i)'''
    exec(code)

     15,  

    isinstance(对象  类 ) ,判断一个对象和一个类有没有关系,而且能够检测到继承关系。

    type 只单纯的判断类,不能检测到继承关系。

    issubclass(子类 父类)  ,如果返回True,说明有继承关系。

    class B:pass
    class A(B):pass
    a = A()
    print(isinstance(a,A))
    print(isinstance(a,B))
    print(type(a) is A)
    print(type(a) is B)
    isinstance(a,A)
    View Code
    class B:pass
    class C(B):pass
    class D(C):pass
    print(issubclass(C,D))
    print(issubclass(D,C))
    print(issubclass(B,C))
    print(issubclass(C,B))
    print(issubclass(D,B))
    View Code
































































  • 相关阅读:
    CSS实现商城分类导航效果(hover选择器)
    框架设计读书笔记--扩展点设计--组合法
    框架设计读书笔记--扩展点设计--钩子方法
    Ferris教程学习笔记:js示例2.8 求出数组中所有数字的和
    Ferris教程学习笔记:js示例2.7 点击Div,显示其innerHTML
    Ferris教程学习笔记:js示例2.6 百度输入法
    Ferris教程学习笔记:js示例2.5 记住密码提示框
    Ferris教程学习笔记:js示例2.4 鼠标移入改变样式,鼠标移出恢复
    程序最佳的学习方式
    Ferris教程学习笔记:js示例2.3 用循环将三个DIV变成红色
  • 原文地址:https://www.cnblogs.com/leiwei123/p/8427285.html
Copyright © 2011-2022 走看看