zoukankan      html  css  js  c++  java
  • Python函数高级特性

    切片(截取元素,可操作list,tuple,string)
    L = list(range(100))  # [0,1,2,3,...,99]
    L[0:10] = L[:10]  # 截取前10个数 [0,1,2,...,9]
    L[-10:]  # 截取后10个数    [90,91,92,...,99]
    L[10:20]  # 截取10-20位置的元素 [10,11,12,13,...,19]
    L[:10:2]  # 前10个数,每两个取一个 [0,2,4,6,8]
    L[::5]  # 所有数,每5个取1个 [0,5,10,...,95]
    L[:]  # 复制原数组
    迭代 for...in...
    • 迭代dict
    d = {'a': 1, 'b': 2, 'c': 3}
    # 默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()
    • 迭代list
    for i, value in enumerate(["a", "b", "c"]):
        print(i, value)  # 迭代list需要用到enumerate函数
    # 0 a
    # 1 b
    # 2 c
    列表生成式
    list(range(1,11))   #生成[1,2,3,..,10]
    [x*x for x in range(1,11)] #生成[1*1,2*2,3*3,...,10*10]
    # 列表生成式跟if判断
    [x*x for x in range(1,11) if x%2 ==0] #生成[2*2,4*4,6*6,8*8,10*10]
    # 双层循环生成全排列
    [x+y for x in "ABC" for y in "XYZ"] #生成['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
    生成器:genterator(一边循环一边计算,如果一个函数中包含yield关键字,则该函数就是一个generator)
    • 把列表生成式的[]该为()即可
    g = (x*x for x in range(1,10))
    # 调用方法:
    next(g) #每次调用next()方法来获取元素,每次只能获取一个
    for n in g: #for循环内部会不断调用next()方法
        print(n)
    • 使用yield关键字
    def fib(max):
        n, a, b = 0, 0, 1
        while n < max:
            yield b
            a, b = b, a + b
            n = n + 1
        return 'done'
    迭代器
    • 可直接作用于for循环的对象 Iterable
    from collections import Iterable
    isinstance([], Iterable)  #True 使用isinstance()来判断是否是Iterable对象
    • 可被next()调用并不断返回下一个值的对象 Iterator
    from collections import Iterator
    isinstance((x for x in range(10)), Iterator)    #使用isinstance()来判断是否是Iterator对象,Iterator对象是惰性求值,只有在需要时才会求值
     
  • 相关阅读:
    xtrabackup之Innobackupex全备数据库
    没有Where条件下group by走索引
    Oracle中查看无效的对象、约束、触发器和索引
    udev/raw/asmlib/多路径 配置asm
    自适应游标共享技术02(一个简单的例子来走近ACS)
    自适应游标共享技术03(常用分析脚本)
    监控进程是否存在
    MySQL运行状态show status详解
    MySQL 加锁处理分析
    使用RMAN验证备份的有效性
  • 原文地址:https://www.cnblogs.com/sghy/p/8074101.html
Copyright © 2011-2022 走看看