10.4-切片

作者: BeautifulSoulpy | 来源:发表于2019-08-18 19:30 被阅读9次

    切片关键:交叉索引一样取值

    1.线性结构可以索引

    lst,tuple,str,bytes,bytearay:
    tuple:占用内存小;

    可迭代for...in
    len()可以获取长度; # length(python 专有的设计思想 )
    可以索引,切片;

    2. 切片[] ->【) #前包后不包

    2.1 切片操作的返回结果是一个新的独立的序列。以列表为例,列表切片后得到的还是一个列表,占用新的内存地址。

    切片只是浅拷贝,它拷贝的是原列表中元素的引用,所以,当存在变长对象的元素时,新列表将受制于原列表。

    'www.magedu.com'[4:10]      |       'magedu'
    #取不出值,不会报错,只是没有结果;
    bytearray(b'www.magedu.com')[-4:10]         |        bytearray(b'')
    tuple('www.magedu.com')[-10:10]             |          ('m', 'a', 'g', 'e', 'd', 'u')
    list('www.magedu.com')[-10:10:1]             |        ['m', 'a', 'g', 'e', 'd', 'u']
    list('www.magedu.com')[-10:10:-1]           |      []
     str与list、tuple输出的结果不同,str输出一段字符;tuple\list依次输出单个字符;
    
    # 切片的使用中还可以再添加一个可选择的索引参数:
        s = 'abcdefghijk'
        # 偏移从0开始,直到不含偏移量为11,每隔2个元素索引一次构成最终的新字符串
        print(s[:11:2])    |    acegik
        # 偏移从11开始,直到不含偏移量为0,每隔2个元素索引一次构成最终的新字符串
        print(s[11::-2])      |      kigeca
        # 即从右向左,每隔一个元素索引一次,效果即翻转字符串
        print(s[::-1])
    
    总结:
    for c in 'www.magedu.com'[::-1] 与 reversed(lst) 比较,for 迭代既浪费空间又浪费时间;reversed只是浪费时间;
    

    相关文章

      网友评论

        本文标题:10.4-切片

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