首頁  >  文章  >  後端開發  >  python序列類型有哪些

python序列類型有哪些

anonymity
anonymity原創
2019-06-17 11:58:4424806瀏覽

python序列類型有哪些?在Python中什麼是序列類型,透過本文來詳細了解。

python序列類型有哪些

序列:字元、列表、元組

所有序列都支援迭代

序列表示索引為非負整數的有序物件集合

字元和元組屬於不可變序列,列表可變

    

##1)字元

字串字面量:把文字放入單引號、雙引號或三引號中;

    '    ''    '''
        >>> str1 = ' hello, fanison '
        >>> type(str1)
        str

    

如果要使用unicode編碼,則在字元之前使用字元u進行識別

        >>> str2 = u'你好,fanison'
        >>> type(str2)
        unicode

        

文件字串:模組、類別或函數的第一個語句是一個字元的話,該字串就成為文件字串,可以使用__doc__屬性引用;

範例:

            >>> def printName():
                    "the function is print hello"
                    print 'hello'
            >>> printName.__doc__

運算子:

索引運算子          s[i]        傳回一個序列的元素i

運算切片

延伸切片運算子      s[i:j:stride]

      

範例:

            >>> str3 = 'hello,fanison'
            >>> str2[0:]
            'hello,fanison'      返回所有元素
            >>> str2[0:7]
            'hello,f'            返回索引7之前的所有元素
            >>> str2[0:7:2]
            'hlof'               返回从索引0到6内步径为2的元素,即隔一个取一个
            >>> str2[7:0:-2]        
            'a,le'               从索引7处倒着隔一个取一个取到索引1处
            >>> str2[-4:-1]
            'iso'                从索引-4处取到-2处       
            >>> str2[-4::-1]
            'inaf,olleh'         从-4处到开始处倒着取

注意:

##步驟路徑為正表示  正著取,索引從小到大          i 64937a52bd99bd3e4290c879b4107f65 j

 # ## #運算:

索引、切片、min()、max()、len()等

        

len(s)              s

#min(s)              s的最小值

max(s)              s的最大值

   [,start [,end]])            找到指定字串sub首次出現的位置

S.upper()                   #                           將一個字串轉換為小寫形式

S.join(t)                               使用中使用上的分隔符號連接序列treee

#
 >>> l1 = list(str1)
>>> l1
['h', 'e', 'l', 'l', 'o', ',', 'f', 'a', 'n', 'i', 's', 'o', 'n']
>>> ''.join(l1)
'hello,fanison'             使用空字符作为分隔符连接列表l1
S.replace(old, new[, count])             替换一个字符串
>>> str1.replace('fan','FAN')
'hello,FANison'

#rrre其幫助

>>> help(str.join)

                

#2)清單

##列表:容器容器類型

         任意物件的有序集合,透過索引存取其中的元素,可變對象,長度可變,異構,任意巢狀

     

      支援在原處修改

            修改指定的索引元素,修改指定的分片,刪除語句,內建方式

            

         >>> list1 = [ 1,2,3,'x','n' ]
         >>> list1[1]=56
         >>> print list1
         [1, 56, 3, 'x', 'n']
         >>> list1[1:3]=[]              会删除索引1到索引3之前的元素
         >>> print list1
         [1, 'x', 'n']   
         >>> del(list1[1])              使用del函数删除list索引为1的元素
         >>> print list1
         [1, 'n']
##    因為支持原處修改,不會改變記憶體位置,可用  id() 查看其位置變更

       

       內建方法:

         計算value值出現的次數

                 L.append(object)                   與一個新元素追           L.extend(iterable)           L.extend(iterable)                 增加合併清單中(第二個清單內容物會以單一元素追加至末端)

      >>> l1 = [ 1,2,3 ]
                        >>> l2 = [ 'x','y','z']
                        >>> l1.append(l2)
                        >>> l1
                        [1, 2, 3, ['x', 'y', 'z']]          使用append方法会以其原有存在形式追加
                        >>> l1 = [ 1,2,3 ]
                        >>> l1.extend(l2)
                        >>> l1
                        [1, 2, 3, 'x', 'y', 'z']            注意两种增加的区别

                L.pop([index])                      返回元素ove(key)                       移除值為key的元素

                        >>> l1 = [ 'x',2,'abc',16,75 ]
                        >>> l1.pop(2)                       pop方法是按索引移除
                        'abc'
                        >>> l1
                        ['x', 2, 16, 75]
                        >>> l1.remove(16)                   remove方法是按值移除
                        >>> l1
                        ['x', 2, 75]

                L.index(value)                   

                L.insert(index, object)               在索引index处插入值

                        >>> l1.insert(1,'abc')
                        >>> l1
                        ['x', 'abc', 2, 75]

                L.sort()                              排序

                L.reverse()                           逆序

                        >>> l1.sort()
                        [2, 75, 'abc', 'x']
                        >>> l1.reverse()
                        ['x', 'abc', 75, 2]

                        

        l1 + l2: 合并两个列表,返回一个新的列表;不会修改原列表;

                        >>> l1 = [ 1,2,3]
                        >>> l2 = [ 'x','y','z']
                        >>> l1 + l2
                        [1, 2, 3, 'x', 'y', 'z']

                        

        l1 * N: 把l1重复N次,返回一个新列表; 

                        >>> l1 * 3
                        [1, 2, 3, 1, 2, 3, 1, 2, 3]         使用id()查看是否生成新列表

        成员关系判断字符:  

                        in              用法:   item in container

                        not in               item not in container

                            >>> l1 = [ 'x','y',3 ]
                            >>> 'y' in l1
                            True
                            >>> 'x' not in l1
                            False

                            

       列表解析:[]

       

       列表复制方式:

            浅复制:两者指向同一内存对象

                    >>> l1 = [ 1,2,3,4 ]
                    >>> l2 = l1
                    >>> id(l1) == id(l1)
                    True                            可以看出两者内存地址相同
                    >>> l1.append('x')
                    >>> print l1
                    [ 1,2,3,4,'x' ]
                    >>> print l2
                     [ 1,2,3,4,'x' ]

            深复制:两者指向不同内存对象

                    1)导入copy模块,使用deepcoop方法

                     >>> import copy
                     >>> l3 = copy.deepcopy(l1)
                     >>> id(l3) == id(l1)
                     False                          地址不同

                     

                    2)复制列表的所有元素,生成一个新列表

                    >>> l4 = l1[:]              
                    >>> print l4
                    [ 1,2,3,4,'x' ]
                    >>> l1.append(6)
                    >>> print l1
                    [ 1,2,3,4,'x',6 ]               l1改变
                    >>> print l4
                    [ 1,2,3,4,'x' ]                 l4不变

3)元组

    表达式符号:()

    容器类型

        任意对象的有序集合,通过索引访问其中的元素,不可变对象,长度固定,异构,嵌套

    

    常见操作:

                    >>> t1 = ( 1,2,3,'xyz','abc')
                    >>> type(t1)
                    tuple
                    >>> len(t1)
                    5
                    >>> t2 = ()                             定义一个空元组
                    >>> t3 = ( , )
                    SyntaxError: invalid syntax             报错:使用逗号分隔的条件是最少要有一个元素

        

        (1,)

                    >>> t1[:]
                    ( 1,2,3,'xyz','abc' )
                    >>> t1[1:]
                    (2, 3, 'xyz', 'abc')

    

        (1,2)       

                    >>> t1[1:4]
                    (2, 3, 'xyz')
                    >>> t4 = 'x',1,'yz',45,[2,4,6]              注意!!!这样也可以生成元组
                    >>> t4  
                    ('x', 1, 'yz', 45, [2, 4, 6])

        t1 + t4: 合并两个元组,返回一个新的元组;不会修改原元组;

                    >>> t1 + t4
                    (1, 2, 3, 'xyz', 'abc', 'x', 1, 'yz', 45, [2, 4, 6])

        

       

       t1 * N:  把l1重复N次,返回一个新元组; 

                    >>> t1 * 3
                    (1, 2, 3, 'xyz', 'abc', 1, 2, 3, 'xyz', 'abc', 1, 2, 3, 'xyz', 'abc')

        成员关系判断

                in

                not in

     

        注意:

            虽然元组本身不可变,但如果元组内嵌套了可变类型的元素,那么此类元素的修改不会返回新元组;

                例:

                    >>> t4 = ('x', 1, 'yz', 45, [2, 4, 6])
                    >>> id(t4)
                    44058448
                    >>> t4[4]                           
                    [2, 4, 6]
                    >>> t4[4].pop()                     弹出列表内一个元素
                    6
                    >>> print t4[4]
                    [2, 4]
                    >>> print t4
                    ('x', 1, 'yz', 45, [2, 4]) 
                    >>> id(t4)
                    44058448                            由此可见,对元组内列表内的修改也会使元组发生改变,没有返回新元组

以上是python序列類型有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn