<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • Python的組合數(shù)據(jù)類型怎么用

            這篇“Python的組合數(shù)據(jù)類型怎么用”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Python的組合數(shù)據(jù)類型怎么用”文章吧。

            創(chuàng)新互聯(lián)主要從事成都網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)富縣,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

            組合數(shù)據(jù)類型

            1 列表

            列表的表達(dá)
            • 序列類型:內(nèi)部元素有位置關(guān)系,能通過位置序號訪問其中元素

            • 列表是一個可以使用多種類型元素,支持元素的增、刪、查、改操作的序列類型

            ls = ["Python", 1989, True, {"version": 3.7}]
            ls
            ['Python', 1989, True, {'version': 3.7}]
            • 另一種產(chǎn)生方式:list(可迭代對象)

            • 可迭代對象包括:字符串、元組、集合、range()等

            字符串轉(zhuǎn)列表

            list("歡迎訂閱本專欄")
            ['歡', '迎', '訂', '閱', '本', '專', '欄']

            元組轉(zhuǎn)列表

            list(("我", "們", "很", "像"))
            ['我', '們', '很', '像']

            集合轉(zhuǎn)列表

            list({"李雷", "韓梅梅", "Jim", "Green"})
            ['Green', 'Jim', '李雷', '韓梅梅']

            特殊的range()

            for i in [0, 1, 2, 3, 4, 5]:
                print(i)
            0
            1
            2
            3
            4
            5
            for i in range(6):
                print(i)
            0
            1
            2
            3
            4
            5
            • range(起始數(shù)字,中止數(shù)字,數(shù)字間隔)

            如果起始數(shù)字缺省,默認(rèn)為0

            必須包含中止數(shù)字,但是注意中止的數(shù)字取不到

            數(shù)字間隔缺省,默認(rèn)為1

            for i in range(1, 11, 2):
                print(i)
            1
            3
            5
            7
            9
            • range()轉(zhuǎn)列表

            list(range(1, 11, 2))
            [1, 3, 5, 7, 9]

            列表的性質(zhì)

            • 列表的長度——len(列表)

            ls = [1, 2, 3, 4, 5]
            len(ls)
            5
            • 列表的索引——與同為序列類型的字符串完全相同

            變量名[位置編號]

            正向索引從0開始
            反向索引從-1開始

            cars = ["BYD", "BMW", "AUDI", "TOYOTA"]
            print(cars[0])
            print(cars[-4])
            BYD
            BYD
            • 列表的切片

            變量名[開始位置:結(jié)束位置:切片間隔]

            cars = ["BYD", "BMW", "AUDI", "TOYOTA"]
            • 正向切片

            print(cars[:3])     # 前三個元素,開始位置缺省,默認(rèn)為0;切片間隔缺省,默認(rèn)為1
            ['BYD', 'BMW', 'AUDI']
            print(cars[1:4:2])  # 第二個到第四個元素 前后索引差為2
            ['BMW', 'TOYOTA']
            print(cars[:])      # 獲取整個列表,結(jié)束位置缺省,默認(rèn)取值到最后
            ['BYD', 'BMW', 'AUDI', 'TOYOTA']
            print(cars[-4:-2])  # 獲取前兩個元素
            ['BYD', 'BMW']
            • 反向切片

            cars = ["BYD", "BMW", "AUDI", "TOYOTA"]
            print(cars[:-4:-1])      # 開始位置缺省,默認(rèn)為-1
            print(cars[::-1])        # 獲得反向列表
            ['TOYOTA', 'AUDI', 'BMW']
            ['TOYOTA', 'AUDI', 'BMW', 'BYD']
            列表的操作符
            • 用**&ensp;list1+lis2&ensp;**的形式實(shí)現(xiàn)列表的拼接

            a = [1, 2]
            b = [3, 4]
            a+b            # 該用法用的不多
            [1, 2, 3, 4]
            • 用&ensp;n&#42;list&ensp;或&ensp;list&#42;n&ensp;實(shí)現(xiàn)列表的成倍復(fù)制

            初始化列表的一種方式

            [0]*10
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
            列表的操作方法

            1、增加元素

            • 在末尾增加元素——列表.append(待增元素)

            languages = ["Python", "C++", "R"]
            languages.append("Java")
            languages
            ['Python', 'C++', 'R', 'Java']
            • 在任意位置插入元素——列表.insert(位置編號,待增元素)
              在位置編號相應(yīng)元素插入待增元素

            languages.insert(1, "C")
            languages
            ['Python', 'C', 'C++', 'R', 'Java']
            • 在末尾整體并入另一列表——列表1.extend(列表2)

            append 將列表2整體作為一個元素添加到列表1中

            languages.append(["Ruby", "PHP"])
            languages
            ['Python', 'C', 'C++', 'R', 'Java', ['Ruby', 'PHP']]

            extend 將待列表2內(nèi)的元素逐個添加到列表1中,當(dāng)然也可以采用加法實(shí)現(xiàn)。

            languages = ['Python', 'C', 'C++', 'R', 'Java']
            languages.extend(["Ruby", "PHP"])
            languages
            ['Python', 'C', 'C++', 'R', 'Java', 'Ruby', 'PHP']

            2、刪除元素

            • 刪除列表i位置的元素 &ensp;列表.pop(位置)

            languages = ['Python', 'C', 'C++', 'R', 'Java']
            languages.pop(1)
            languages
            ['Python', 'C++', 'R', 'Java']
            • 不寫位置信息,默認(rèn)刪除最后一個元素

            languages.pop()
            languages
            ['Python', 'C++', 'R']
            • 刪除列表中的第一次出現(xiàn)的待刪元素&ensp;列表.remove(待刪元素)

            languages = ['Python', 'C', 'R', 'C', 'Java']
            languages.remove("C")    
            languages
            ['Python', 'R', 'C', 'Java']
            languages = ['Python', 'C', 'R', 'C', 'Java']
            while "C" in languages:
                languages.remove("C")    
            languages
            ['Python', 'R', 'Java']

            3、查找元素

            • 列表中第一次出現(xiàn)待查元素的位置&ensp;列表.index(待查元素)

            languages = ['Python', 'C', 'R','Java']
            idx = languages.index("R") 
            idx
            2

            4、修改元素

            • 通過"先索引后賦值"的方式,對元素進(jìn)行修改&ensp;列表名[位置]=新值

            languages = ['Python', 'C', 'R','Java']
            languages[1] = "C++"
            languages
            ['Python', 'C++', 'R', 'Java']

            5、列表的復(fù)制

            • 錯誤的方式:這種方式僅是相當(dāng)于給列表起了一個別名

            languages = ['Python', 'C', 'R','Java']
            languages_2 = languages
            print(languages_2)
            ['Python', 'C', 'R', 'Java']
            languages.pop()
            print(languages)
            print(languages_2)
            ['Python', 'C', 'R']
            ['Python', 'C', 'R']
            • 正確的方式——淺拷貝

            當(dāng)內(nèi)容中也有列表這種可變的情況時,這時淺拷貝可能出問題,應(yīng)該采用深拷貝。

            • 方法1:列表.copy()

            languages = ['Python', 'C', 'R','Java']
            languages_2 = languages.copy()
            languages.pop()
            print(languages)
            print(languages_2)
            ['Python', 'C', 'R']
            ['Python', 'C', 'R', 'Java']
            • 方法2:列表 [&ensp;:&ensp;]

            • 相當(dāng)于對整個列表的切片

            languages = ['Python', 'C', 'R','Java']
            languages_3 = languages[:]
            languages.pop()
            print(languages)
            print(languages_3)
            ['Python', 'C', 'R']
            ['Python', 'C', 'R', 'Java']

            6、列表的排序

            • 使用列表.sort()對列表進(jìn)行永久排序

            • 直接在列表上進(jìn)行操作,無返回值

            • 默認(rèn)是遞增的排序

            ls = [2, 5, 2, 8, 19, 3, 7]
            ls.sort()
            ls
            [2, 2, 3, 5, 7, 8, 19]
            • 遞減排列

            ls.sort(reverse = True)
            ls
            [19, 8, 7, 5, 3, 2, 2]
            • 使用sorted(列表)對列表進(jìn)行臨時排序

            • 原列表保持不變,返回排序后的列表

            ls = [2, 5, 2, 8, 19, 3, 7]
            ls_2 = sorted(ls)
            print(ls)
            print(ls_2)
            [2, 5, 2, 8, 19, 3, 7]
            [19, 8, 7, 5, 3, 2, 2]
            sorted(ls, reverse = True)
            [19, 8, 7, 5, 3, 2, 2]

            7、列表的翻轉(zhuǎn)

            • 使用列表.reverse()對列表進(jìn)行永久翻轉(zhuǎn)

            • 直接在列表上進(jìn)行操作,無返回值

            ls = [1, 2, 3, 4, 5]
            print(ls[::-1])
            ls
            [5, 4, 3, 2, 1]
            
            [1, 2, 3, 4, 5]
            ls.reverse()
            ls
            [5, 4, 3, 2, 1]

            8、使用for循環(huán)對列表進(jìn)行遍歷

            ls = [1, 2, 3, 4, 5]
            for i in ls:
                print(i)
            1
            2
            3
            4
            5

            2 元組

             元組的表達(dá)
            • 元組是一個可以使用多種類型元素,一旦定義,內(nèi)部元素不支持增、刪和修改操作的序列類型

            通俗的講,可以將元組視作“不可變的列表”

            names = ("Peter", "Pual", "Mary")
            元組的操作
            • 不支持元素增加、元素刪除、元素修改操作

            • 其他操作與列表的操作完全一致

            元組的常見用處

            打包與解包

            • 例1 返回值是打包成元組的形式

            def f1(x):              # 返回x的平方和立方
                return x**2, x**3   # 實(shí)現(xiàn)打包返回
            
            print(f1(3))
            print(type(f1(3)))      # 元組類型
            (9, 27)
            <class 'tuple'>
            a, b = f1(3)            # 實(shí)現(xiàn)解包賦值 
            print(a)
            print(b)
            9
            27
            • 例2

            • 采用zip函數(shù)進(jìn)行打包

            numbers = [201901, 201902, 201903]
            name = ["小明", "小紅", "小強(qiáng)"]
            list(zip(numbers,name))
            [(201901, '小明'), (201902, '小紅'), (201903, '小強(qiáng)')]
            for number,name in zip(numbers,name):   # 每次取到一個元組,立刻進(jìn)行解包賦值
                print(number, name)
            201901 小明
            201902 小紅
            201903 小強(qiáng)

            3 字典

            字典的表達(dá)
            • 映射類型: 通過“鍵”-“值”的映射實(shí)現(xiàn)數(shù)據(jù)存儲和查找

            • 常規(guī)的字典是無序的,僅可以通過鍵來對數(shù)據(jù)進(jìn)行訪問

            students = {201901: '小明', 201902: '小紅', 201903: '小強(qiáng)'}
            students

            字典鍵的要求

            • 1、字典的鍵不能重復(fù)

            如果重復(fù),前面的鍵就被覆蓋了

            students = {201901: '小明', 201901: '小紅', 201903: '小強(qiáng)'}
            students
            {201901: '小紅', 201903: '小強(qiáng)'}
            • 2、字典的鍵必須是不可變類型,如果鍵可變,就找不到對應(yīng)存儲的值了

            • 不可變類型:數(shù)字、字符串、元組。 &ensp;一旦確定,它自己就是它自己,變了就不是它了。

            • 可變類型:列表、字典、集合。&ensp; 一旦確定,還可以隨意增刪改。因此這三個類型不能作為字典的鍵。

            d1 = {1: 3}
            d2 = {"s": 3}
            d3 = {(1,2,3): 3}

            上面沒有報(bào)錯,說明是合法的。

            d = {[1, 2]: 3}
            ---------------------------------------------------------------------------
            
            TypeError                                 Traceback (most recent call last)
            
            <ipython-input-68-bf7f06622b3f> in <module>
            ----> 1 d = {[1, 2]: 3}
            
            
            TypeError: unhashable type: 'list'
            d = {{1:2}: 3}
            ---------------------------------------------------------------------------
            
            TypeError                                 Traceback (most recent call last)
            
            <ipython-input-69-188e5512b5fe> in <module>
            ----> 1 d = {{1:2}: 3}
            
            
            TypeError: unhashable type: 'dict'
            d = {{1, 2}: 3}
            ---------------------------------------------------------------------------
            
            TypeError                                 Traceback (most recent call last)
            
            <ipython-input-70-c2dfafc1018a> in <module>
            ----> 1 d = {{1, 2}: 3}
            
            
            TypeError: unhashable type: 'set'
            字典的性質(zhì)
            • 字典的長度——鍵值對的個數(shù)

            students = {201901: '小明', 201902: '小紅', 201903: '小強(qiáng)'}
            len(students)
            3
            • 字典的索引

            通過&ensp;字典[鍵]&ensp;的形式來獲取對應(yīng)的值

            students = {201901: '小明', 201902: '小紅', 201903: '小強(qiáng)'}
            students[201902]
            '小紅'
            字典的操作方法

            1、增加鍵值對

            • 變量名[新鍵] = 新值

            students = {201901: '小明', 201902: '小紅', 201903: '小強(qiáng)'}
            students[201904] = "小雪"
            students
            {201901: '小明', 201902: '小紅', 201903: '小強(qiáng)', 201904: '小雪'}

            2、刪除鍵值對

            • 通過del 變量名[待刪除鍵]

            students = {201901: '小明', 201902: '小紅', 201903: '小強(qiáng)'}
            del students[201903]
            students
            {201901: '小明', 201902: '小紅'}
            • 通過變量名.pop(待刪除鍵)

            students = {201901: '小明', 201902: '小紅', 201903: '小強(qiáng)'}
            value = students.pop(201903)   # 刪除鍵值對,同時獲得刪除鍵值對的值
            print(value)
            print(students)
            小強(qiáng)
            {201901: '小明', 201902: '小紅'}
            • 變量名.popitem()&ensp;隨機(jī)刪除一個鍵值對,并以元組返回刪除鍵值對

            students = {201901: '小明', 201902: '小紅', 201903: '小強(qiáng)'}
            key, value = students.popitem()
            print(key, value)
            print(students)
            201903 小強(qiáng)
            {201901: '小明', 201902: '小紅'}

            3、修改值

            • 通過先索引后賦值的方式對相應(yīng)的值進(jìn)行修改

            students = {201901: '小明', 201902: '小紅', 201903: '小強(qiáng)'}
            students[201902] = "小雪"
            students
            {201901: '小明', 201902: '小雪', 201903: '小強(qiáng)'}

            4、d.get( )方法

            d.get(key,default)&emsp;從字典d中獲取鍵key對應(yīng)的值,如果沒有這個鍵,則返回default

            • 小例子:統(tǒng)計(jì)"牛奶奶找劉奶奶買牛奶"中字符的出現(xiàn)頻率

            s = "牛奶奶找劉奶奶買牛奶"
            d = {}
            print(d)
            for i in s:
                d[i] = d.get(i, 0)+1 # 如果該字符第一次出現(xiàn),則返回default 0 ,然后+1統(tǒng)計(jì)。如果之前就有i這個鍵,則返回該 key i 所對應(yīng)的值。
                print(d)
            # print(d)
            {}
            {'牛': 1}
            {'牛': 1, '奶': 1}
            {'牛': 1, '奶': 2}
            {'牛': 1, '奶': 2, '找': 1}
            {'牛': 1, '奶': 2, '找': 1, '劉': 1}
            {'牛': 1, '奶': 3, '找': 1, '劉': 1}
            {'牛': 1, '奶': 4, '找': 1, '劉': 1}
            {'牛': 1, '奶': 4, '找': 1, '劉': 1, '買': 1}
            {'牛': 2, '奶': 4, '找': 1, '劉': 1, '買': 1}
            {'牛': 2, '奶': 5, '找': 1, '劉': 1, '買': 1}

            5、d.keys( )&ensp;d.values( )方法

            把所有的key,value 單獨(dú)拿出來。

            students = {201901: '小明', 201902: '小紅', 201903: '小強(qiáng)'}
            print(list(students.keys()))
            print(list(students.values()))
            [201901, 201902, 201903]
            ['小明', '小紅', '小強(qiáng)']

            6、d.items( )方法及字典的遍歷

            print(list(students.items()))
            for k, v in students.items():#進(jìn)行解包
                print(k, v)
            [(201901, '小明'), (201902, '小紅'), (201903, '小強(qiáng)')]
            201901 小明
            201902 小紅
            201903 小強(qiáng)

            4 集合

            集合的表達(dá)

            • 一系列互不相等元素的無序集合(互斥)

            • 元素必須是不可變類型:數(shù)字,字符串或元組,可視作字典的鍵

            • 可以看做是沒有值,或者值為None的字典

            students = {"小明", "小紅", "小強(qiáng)", "小明"}   #可用于去重
            students
            {'小強(qiáng)', '小明', '小紅'}
            集合的運(yùn)算
            • 小例子 通過集合進(jìn)行交集并集的運(yùn)算

            Chinese_A = {"劉德華", "張學(xué)友", "張曼玉", "鐘楚紅", "古天樂", "林青霞"}
            Chinese_A
            {'劉德華', '古天樂', '張學(xué)友', '張曼玉', '林青霞', '鐘楚紅'}
            Math_A = {"林青霞", "郭富城", "王祖賢", "劉德華", "張曼玉", "黎明"}
            Math_A
            {'劉德華', '張曼玉', '林青霞', '王祖賢', '郭富城', '黎明'}
            • 語文和數(shù)學(xué)兩門均為A的學(xué)員

            • S & T 返回一個新集合,包括同時在集合S和T中的元素

            Chinese_A & Math_A
            {'劉德華', '張曼玉', '林青霞'}
            • 語文或數(shù)學(xué)至少一門為A的學(xué)員

            • S | T 返回一個新集合,包括集合S和T中的所有元素

            Chinese_A | Math_A
            {'劉德華', '古天樂', '張學(xué)友', '張曼玉', '林青霞', '王祖賢', '郭富城', '鐘楚紅', '黎明'}
            • 語文數(shù)學(xué)只有一門為A的學(xué)員

            • S ^ T 返回一個新集合,包括集合S和T中的非共同元素

            Chinese_A ^ Math_A
            {'古天樂', '張學(xué)友', '王祖賢', '郭富城', '鐘楚紅', '黎明'}
            • 語文為A,數(shù)學(xué)不為A的學(xué)員

            • S - T 返回一個新集合,包括在集合S但不在集合T中的元素

            Chinese_A - Math_A
            {'古天樂', '張學(xué)友', '鐘楚紅'}
            • 數(shù)學(xué)為A,語文不為A的學(xué)員

            Math_A - Chinese_A
            {'王祖賢', '郭富城', '黎明'}
             集合的操作方法
            • 增加元素——S.add(x)

            stars = {"劉德華", "張學(xué)友", "張曼玉"}
            stars.add("王祖賢")
            stars
            {'劉德華', '張學(xué)友', '張曼玉', '王祖賢'}
            • 移除元素——S.remove(x)

            stars.remove("王祖賢")
            stars
            {'劉德華', '張學(xué)友', '張曼玉'}
            • 集合的長度——len(S)

            len(stars)
            3
            • 集合的遍歷——借助for循環(huán)

            for star in stars:
                print(star)
            張學(xué)友
            張曼玉
            劉德華

            以上就是關(guān)于“Python的組合數(shù)據(jù)類型怎么用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

            分享題目:Python的組合數(shù)據(jù)類型怎么用
            當(dāng)前地址:http://www.jbt999.com/article14/pdpsge.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、微信公眾號網(wǎng)站收錄、網(wǎng)站改版網(wǎng)站維護(hù)、搜索引擎優(yōu)化

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

            商城網(wǎng)站建設(shè)

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 亚洲视频一区二区在线 | 成人性爱视频网址 | 免费看天堂的逼 | 丁香婷婷亚洲 | 日韩三级片一区二区 |