python序列類型有哪些

anonymity
發布: 2019-06-17 11:58:44
原創
24809 人瀏覽過

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 < j

步徑為負表示  倒取,索引從大到小          i > 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
[&#39;h&#39;, &#39;e&#39;, &#39;l&#39;, &#39;l&#39;, &#39;o&#39;, &#39;,&#39;, &#39;f&#39;, &#39;a&#39;, &#39;n&#39;, &#39;i&#39;, &#39;s&#39;, &#39;o&#39;, &#39;n&#39;]
>>> &#39;&#39;.join(l1)
&#39;hello,fanison&#39;             使用空字符作为分隔符连接列表l1
S.replace(old, new[, count])             替换一个字符串
>>> str1.replace(&#39;fan&#39;,&#39;FAN&#39;)
&#39;hello,FANison&#39;
登入後複製

#rrre其幫助

>>> help(str.join)

                

#2)清單

##列表:容器容器類型

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

     

      支援在原處修改

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

            

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

       

       內建方法:

         計算value值出現的次數

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

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

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

                        >>> l1 = [ &#39;x&#39;,2,&#39;abc&#39;,16,75 ]
                        >>> l1.pop(2)                       pop方法是按索引移除
                        &#39;abc&#39;
                        >>> l1
                        [&#39;x&#39;, 2, 16, 75]
                        >>> l1.remove(16)                   remove方法是按值移除
                        >>> l1
                        [&#39;x&#39;, 2, 75]
登入後複製

                L.index(value)                   

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

                        >>> l1.insert(1,&#39;abc&#39;)
                        >>> l1
                        [&#39;x&#39;, &#39;abc&#39;, 2, 75]
登入後複製

L.sort() 排序

L.reverse() 逆序

                        >>> l1.sort()
                        [2, 75, &#39;abc&#39;, &#39;x&#39;]
                        >>> l1.reverse()
                        [&#39;x&#39;, &#39;abc&#39;, 75, 2]
登入後複製

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

                        >>> l1 = [ 1,2,3]
                        >>> l2 = [ &#39;x&#39;,&#39;y&#39;,&#39;z&#39;]
                        >>> l1 + l2
                        [1, 2, 3, &#39;x&#39;, &#39;y&#39;, &#39;z&#39;]
登入後複製

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 = [ &#39;x&#39;,&#39;y&#39;,3 ]
                            >>> &#39;y&#39; in l1
                            True
                            >>> &#39;x&#39; not in l1
                            False
登入後複製

列表解析:[]

列表复制方式:

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

                    >>> l1 = [ 1,2,3,4 ]
                    >>> l2 = l1
                    >>> id(l1) == id(l1)
                    True                            可以看出两者内存地址相同
                    >>> l1.append(&#39;x&#39;)
                    >>> print l1
                    [ 1,2,3,4,&#39;x&#39; ]
                    >>> print l2
                     [ 1,2,3,4,&#39;x&#39; ]
登入後複製

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

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

                     >>> import copy
                     >>> l3 = copy.deepcopy(l1)
                     >>> id(l3) == id(l1)
                     False                          地址不同
登入後複製

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

                    >>> l4 = l1[:]              
                    >>> print l4
                    [ 1,2,3,4,&#39;x&#39; ]
                    >>> l1.append(6)
                    >>> print l1
                    [ 1,2,3,4,&#39;x&#39;,6 ]               l1改变
                    >>> print l4
                    [ 1,2,3,4,&#39;x&#39; ]                 l4不变
登入後複製

3)元组

表达式符号:()

容器类型

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

常见操作:

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

(1,)

                    >>> t1[:]
                    ( 1,2,3,&#39;xyz&#39;,&#39;abc&#39; )
                    >>> t1[1:]
                    (2, 3, &#39;xyz&#39;, &#39;abc&#39;)
登入後複製

(1,2)

                    >>> t1[1:4]
                    (2, 3, &#39;xyz&#39;)
                    >>> t4 = &#39;x&#39;,1,&#39;yz&#39;,45,[2,4,6]              注意!!!这样也可以生成元组
                    >>> t4  
                    (&#39;x&#39;, 1, &#39;yz&#39;, 45, [2, 4, 6])
登入後複製

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

                    >>> t1 + t4
                    (1, 2, 3, &#39;xyz&#39;, &#39;abc&#39;, &#39;x&#39;, 1, &#39;yz&#39;, 45, [2, 4, 6])
登入後複製

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

                    >>> t1 * 3
                    (1, 2, 3, &#39;xyz&#39;, &#39;abc&#39;, 1, 2, 3, &#39;xyz&#39;, &#39;abc&#39;, 1, 2, 3, &#39;xyz&#39;, &#39;abc&#39;)
登入後複製

成员关系判断

in

not in

注意:

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

例:

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

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!