python序列类型有哪些

Jun 17, 2019 am 11:58 AM
python

python序列类型有哪些?在Python中什么才是序列类型,通过本文来详细了解。

python序列类型有哪些

序列:字符、列表、元组

所有序列都支持迭代

序列表示索引为非负整数的有序对象集合

字符和元组属于不可变序列,列表可变

    

1)字符

字符串字面量:把文本放入单引号、双引号或三引号中;

    '    ''    '''
        >>> str1 = ' hello, fanison '
        >>> type(str1)
        str
Salin selepas log masuk

如果要使用unicode编码,则在字符之前使用字符u进行标识

        >>> str2 = u'你好,fanison'
        >>> type(str2)
        unicode
Salin selepas log masuk

文档字串:模块、类或函数的第一条语句是一个字符的话,该 字符串就成为文档字符串,可以使用__doc__属性引用;

例:

            >>> def printName():
                    "the function is print hello"
                    print 'hello'
            >>> printName.__doc__
Salin selepas log masuk

运算符:

索引运算符 s[i] 返回一个序列的元素i

切片运算符 s[i:j] 返回一个切片

扩展切片运算符 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处到开始处倒着取
Salin selepas log masuk

注意:

步径为正表示 正着取,索引从小到大 i < j

步径为负表示 倒着取,索引从大到小 i > j

支持运算:

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

len(s) s中的元素个数

min(s) s的最小值

max(s) s的最大值

支持方法:

S.index(sub [,start [,end]]) 找到指定字符串sub首次出现的位置

S.upper() 将一个字符串转换为大写形式

S.lower() 将一个字符串转化为小写形式

S.join(t) 使用s作为分隔符连接序列t中的字符串

 >>> 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;
Salin selepas log masuk

注意:

使用 help()获取其帮助

>>> 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;]
Salin selepas log masuk

注意:

因为支持原处修改,不会改变内存位置,可使用 id() 查看其位置变化

内置方法:

L.count(value) 计算value值出现的次数

L.append(object) 将一个新元素追加到L末端

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;]            注意两种增加的区别
Salin selepas log masuk

L.pop([index]) 返回元素index并从列表中移除它,如果省略则返回并移除列表最后一个元素

L.remove(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]
Salin selepas log masuk

L.index(value) 指定值首次出现的位置

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

                        >>> l1.insert(1,&#39;abc&#39;)
                        >>> l1
                        [&#39;x&#39;, &#39;abc&#39;, 2, 75]
Salin selepas log masuk

L.sort() 排序

L.reverse() 逆序

                        >>> l1.sort()
                        [2, 75, &#39;abc&#39;, &#39;x&#39;]
                        >>> l1.reverse()
                        [&#39;x&#39;, &#39;abc&#39;, 75, 2]
Salin selepas log masuk

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;]
Salin selepas log masuk

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

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

成员关系判断字符:

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
Salin selepas log masuk

列表解析:[]

列表复制方式:

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

                    >>> 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; ]
Salin selepas log masuk

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

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

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

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不变
Salin selepas log masuk

3)元组

表达式符号:()

容器类型

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

常见操作:

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

(1,)

                    >>> t1[:]
                    ( 1,2,3,&#39;xyz&#39;,&#39;abc&#39; )
                    >>> t1[1:]
                    (2, 3, &#39;xyz&#39;, &#39;abc&#39;)
Salin selepas log masuk

(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])
Salin selepas log masuk

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

                    >>> t1 + t4
                    (1, 2, 3, &#39;xyz&#39;, &#39;abc&#39;, &#39;x&#39;, 1, &#39;yz&#39;, 45, [2, 4, 6])
Salin selepas log masuk

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;)
Salin selepas log masuk

成员关系判断

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                            由此可见,对元组内列表内的修改也会使元组发生改变,没有返回新元组
Salin selepas log masuk

Atas ialah kandungan terperinci python序列类型有哪些. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Adakah Mysql perlu membayar Adakah Mysql perlu membayar Apr 08, 2025 pm 05:36 PM

MySQL mempunyai versi komuniti percuma dan versi perusahaan berbayar. Versi komuniti boleh digunakan dan diubahsuai secara percuma, tetapi sokongannya terhad dan sesuai untuk aplikasi dengan keperluan kestabilan yang rendah dan keupayaan teknikal yang kuat. Edisi Enterprise menyediakan sokongan komersil yang komprehensif untuk aplikasi yang memerlukan pangkalan data yang stabil, boleh dipercayai, berprestasi tinggi dan bersedia membayar sokongan. Faktor yang dipertimbangkan apabila memilih versi termasuk kritikal aplikasi, belanjawan, dan kemahiran teknikal. Tidak ada pilihan yang sempurna, hanya pilihan yang paling sesuai, dan anda perlu memilih dengan teliti mengikut keadaan tertentu.

Hadidb: Pangkalan data yang ringan dan berskala mendatar di Python Hadidb: Pangkalan data yang ringan dan berskala mendatar di Python Apr 08, 2025 pm 06:12 PM

Hadidb: Pangkalan data Python yang ringan, tinggi, Hadidb (Hadidb) adalah pangkalan data ringan yang ditulis dalam Python, dengan tahap skalabilitas yang tinggi. Pasang HadIdb menggunakan pemasangan PIP: Pengurusan Pengguna PipInstallHadidB Buat Pengguna: CreateUser () Kaedah untuk membuat pengguna baru. Kaedah pengesahan () mengesahkan identiti pengguna. dariHadidb.OperationImportuserer_Obj = user ("admin", "admin") user_obj.

Kaedah Navicat untuk melihat kata laluan pangkalan data MongoDB Kaedah Navicat untuk melihat kata laluan pangkalan data MongoDB Apr 08, 2025 pm 09:39 PM

Tidak mustahil untuk melihat kata laluan MongoDB secara langsung melalui Navicat kerana ia disimpan sebagai nilai hash. Cara mendapatkan kata laluan yang hilang: 1. Tetapkan semula kata laluan; 2. Periksa fail konfigurasi (mungkin mengandungi nilai hash); 3. Semak Kod (boleh kata laluan Hardcode).

Bagaimana untuk mengoptimumkan prestasi MySQL untuk aplikasi beban tinggi? Bagaimana untuk mengoptimumkan prestasi MySQL untuk aplikasi beban tinggi? Apr 08, 2025 pm 06:03 PM

Panduan Pengoptimuman Prestasi Pangkalan Data MySQL Dalam aplikasi yang berintensifkan sumber, pangkalan data MySQL memainkan peranan penting dan bertanggungjawab untuk menguruskan urus niaga besar-besaran. Walau bagaimanapun, apabila skala aplikasi berkembang, kemunculan prestasi pangkalan data sering menjadi kekangan. Artikel ini akan meneroka satu siri strategi pengoptimuman prestasi MySQL yang berkesan untuk memastikan aplikasi anda tetap cekap dan responsif di bawah beban tinggi. Kami akan menggabungkan kes-kes sebenar untuk menerangkan teknologi utama yang mendalam seperti pengindeksan, pengoptimuman pertanyaan, reka bentuk pangkalan data dan caching. 1. Reka bentuk seni bina pangkalan data dan seni bina pangkalan data yang dioptimumkan adalah asas pengoptimuman prestasi MySQL. Berikut adalah beberapa prinsip teras: Memilih jenis data yang betul dan memilih jenis data terkecil yang memenuhi keperluan bukan sahaja dapat menjimatkan ruang penyimpanan, tetapi juga meningkatkan kelajuan pemprosesan data.

Python: meneroka aplikasi utamanya Python: meneroka aplikasi utamanya Apr 10, 2025 am 09:41 AM

Python digunakan secara meluas dalam bidang pembangunan web, sains data, pembelajaran mesin, automasi dan skrip. 1) Dalam pembangunan web, kerangka Django dan Flask memudahkan proses pembangunan. 2) Dalam bidang sains data dan pembelajaran mesin, numpy, panda, scikit-learn dan perpustakaan tensorflow memberikan sokongan yang kuat. 3) Dari segi automasi dan skrip, Python sesuai untuk tugas -tugas seperti ujian automatik dan pengurusan sistem.

Cara Menggunakan AWS Glue Crawler dengan Amazon Athena Cara Menggunakan AWS Glue Crawler dengan Amazon Athena Apr 09, 2025 pm 03:09 PM

Sebagai profesional data, anda perlu memproses sejumlah besar data dari pelbagai sumber. Ini boleh menimbulkan cabaran kepada pengurusan data dan analisis. Nasib baik, dua perkhidmatan AWS dapat membantu: AWS Glue dan Amazon Athena.

Rancangan Python 2 jam: Pendekatan yang realistik Rancangan Python 2 jam: Pendekatan yang realistik Apr 11, 2025 am 12:04 AM

Anda boleh mempelajari konsep pengaturcaraan asas dan kemahiran Python dalam masa 2 jam. 1. Belajar Pembolehubah dan Jenis Data, 2.

Bolehkah mysql menyambung ke pelayan SQL Bolehkah mysql menyambung ke pelayan SQL Apr 08, 2025 pm 05:54 PM

Tidak, MySQL tidak dapat menyambung terus ke SQL Server. Tetapi anda boleh menggunakan kaedah berikut untuk melaksanakan interaksi data: Gunakan middleware: data eksport dari MySQL ke format pertengahan, dan kemudian mengimportnya ke SQL Server melalui middleware. Menggunakan Pangkalan Data Pangkalan Data: Alat perniagaan menyediakan antara muka yang lebih mesra dan ciri -ciri canggih, pada dasarnya masih dilaksanakan melalui middleware.

See all articles