美文网首页
Python3入门

Python3入门

作者: 叶扬风起 | 来源:发表于2019-07-22 13:11 被阅读0次

    基础的数据就不说了,文档上面全都有...

    一、切片(对于list和tuple类型数据)

    #取前n个元素
    list[0:n]
    #如果第一个索引为0,可以省略
    list[:n]
    #支持取倒数(负数)
    list[-2:]
    #步长:所有数,每5个取一个:
    list[::5]
    

    二、迭代

    1. 判断迭代

    #通过 collections 模块的 Iterable 类型判断
    from collections import Iterable
    #str是否可以迭代,返回True
    isinstance('abc', Iterable)
    #整数是否可以迭代,返回Flase
    isinstance(123, Iterable)
    

    2. 遍历方法

    #使用for...in...
    for item in items:
        return item
    #dist遍历key
    for key in dict:
        return key
    #dist遍历value
    for value in dict.values():
        return key
    #dist遍历key,value
    for key,value in dict.items():
        return key,value
    

    3. 带下标索引遍历方法

    for index,item in enumerate(items):
        return index,item
    

    三、列表生成式

    #1. 普通生成式
    list(range(1,11))
    #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    
    #2. 函数生成式
    list = [x * x for x in range(1, 11)]
    #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    
    #3. 函数+判断生成式
    list = [x * x for x in range(1, 11) if x % 2 ==0]
    #[4, 16, 36, 64, 100]
    
    #4. 全排列(两层循环)
    list = [m + n for m in 'ABC' for n in 'XYZ']
    #['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
    
    #对list进行操作
    L = ['Hello', 'World', 'IBM', 'Apple']
    list = [s.lower() for s in L]
    #['hello', 'world', 'ibm', 'apple']
    

    四、生成器generator

    #1. 普通生成
    g = (x * x for x in range(10))
    #<generator object <genexpr> at 0x1022ef630>
    
    #2. 使用
    next(g)
    for n in g:
        return n
    
    #函数生成器
    def odd():
        n = 1
        yield n
        n += 1
        yield n
    o = odd()
    print(next(o))
    print(next(o))
    #使用for遍历
    def odd():
        n = 1
        yield n
        n += 1
        yield n
    o = odd()
    for x in o:
        print(x)
    

    五、迭代器Iterator

    1. 判断
    from collections import Iterator
    isinstance((x for x in range(10)), Iterator)    #True
    isinstance('abc', Iterator)    #False
    
    • 生成器都是 Iterator 对象,但 list、 dict、 str 虽然是 Iterable,却不是Iterator。
    • Iterator 甚至可以表示一个无限大的数据流,例如全体自然数。而使用list 是永远不可能存储全体自然数的。
    1. 把 list、 dict、 str 等 Iterable 变成 Iterator 可以使用 iter()函数:
    isinstance(iter('abc'), Iterator)    #True
    

      为什么 list、 dict、 str 等数据类型不是 Iterator?
      因为 Python 的 Iterator 对象表示的是一个数据流, Iterator 对象可以被 next()函数调用并不断返回下一个数据,直到没有数据时抛出
    StopIteration 错误。可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列的长度,只能不断通过 next()函数实现按需计算下一个数据,所以 Iterator 的计算是惰性的,只有在需要返回下一个数据时它才会计算。

    六、虚拟环境

    #创建
    python -m venv XXX
    #使用
    #linux下:
    source <XXX>/bin/activate
    #win下
    <XXX>/Scripts/activate.bat
    #退出
    deactivate
    

    相关文章

      网友评论

          本文标题:Python3入门

          本文链接:https://www.haomeiwen.com/subject/tgjilctx.html