zoukankan      html  css  js  c++  java
  • Python学习之旅(十二)

    Python基础知识(11):高级特性

    一、分片(切片)

     

    通过索引来获取一定范围内的元素

    #字符串
    s="Alice"
    s[0:4:2]
    结果:
    'Ai'
    
    #列表
    l=[1,2,3,4,5,6]
    l[0:2]
    结果:
    [1, 2]
    
    #元组
    t=(1,2,3,"a","b","c")
    t[:]
    结果:
    (1, 2, 3, 'a', 'b', 'c')

    二、迭代

    给定一个元组或列表,通过for循环遍历,这种遍历称为迭代

    def test():
        l=["A","l","i","c","e"]
        for i in l:
            print(i)
    
    test()

    结果:

    A
    l
    i
    c
    e

    通过collections模块的Iterator判断一个对象是否是可迭代对象

    from collections import Iterable
    isinstance("more", Iterable)
    结果:True

    enumerate函数可以把一个list变成索引-元素对,可以在for循环中同时迭代索引和元素本身:

    for i in enumerate(["more","money","never","God"]):
        print(i)
    
    结果:    
    (0, 'more')
    (1, 'money')
    (2, 'never')
    (3, 'God')

    三、列表生成式

    可以用list(range(1, 11))生成列表 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    列表生成式用一行语句代替循环生成列表

    l=[]
    for i in range(1,10):
        l.append(i*i)
    
        
    结果:
    [1, 4, 9, 16, 25, 36, 49, 64, 81]
    
    [x*x for x in range(1,10)]
    结果:
    [1, 4, 9, 16, 25, 36, 49, 64, 81]

    四、生成器

    生成器generator:列表中的元素可以在循环中按照某种算法推算出来机制

     创建一个generator的方法:

    1、把一个列表生成式的[]改成(),就创建了一个generator:

    L = [x * x for x in range(9)]
    L

    结果:

    [0, 1, 4, 9, 16, 25, 36, 49, 64]

    五、迭代器

    凡是可作用于for循环的对象都是Iterable类型

    凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列

    集合数据类型如listdictstr等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象

    资料来源:

    廖雪峰官方网:https://www.liaoxuefeng.com

  • 相关阅读:
    后台java,前台extjs文件下载
    gridPanel可拖拽排序
    Extjs 获取输入框焦点,并选中值
    java poi对Excel文件加密
    java poi 读取有密码加密的Excel文件
    SSL 与 数字证书 的基本概念和工作原理
    splay树
    树剖版lca
    树链剖分
    kruskal重构树
  • 原文地址:https://www.cnblogs.com/finsomway/p/10009098.html
Copyright © 2011-2022 走看看