欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Python數(shù)據(jù)結(jié)構(gòu)之列表元組字典的用法

數(shù)據(jù)結(jié)構(gòu)的含義

在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)之前,我們先來了解下數(shù)據(jù)結(jié)構(gòu)的含義。數(shù)據(jù)結(jié)構(gòu)是通過某種方式(例如對元素進(jìn)行編號)組織在一起的數(shù)據(jù)元素的集合,這些數(shù)據(jù)元素可以是數(shù)字或者字符,甚至可以是其他數(shù)據(jù)結(jié)構(gòu)。在Python語言中,最基本的數(shù)據(jù)結(jié)構(gòu)是序列(sequence)。序列中的每個元素被分配一個序號————即元素的位置,稱為索引或下標(biāo),索引從0開始遞增。

成都創(chuàng)新互聯(lián)公司是專業(yè)的麻栗坡網(wǎng)站建設(shè)公司,麻栗坡接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行麻栗坡網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

典型的序列包括列表、元組和字符串。其中,列表是可變的(可修改),而元組和字符串是不可變的(一旦創(chuàng)建了就是固定的)。列表、元組和字符串也是較常用的數(shù)據(jù)結(jié)構(gòu)。

本篇內(nèi)容主要講解Python的列表、元組、字典,下篇將會介紹字符串的操作。

列表 list,使用 [] 定義,[] 中的各個元素,用逗號分隔。

例子

  • 定義一個名為 all_star,包含 Kobe,TMAC,LBJ元素的列表
    >>> all_star = ["Kobe","TMAC","LBJ"]
    >>> print(all_star)
    ['Kobe', 'TMAC', 'LBJ']
  • 列表也可以包含列表,例如:
    >>> east_star = ["Irving","Wall","Love"]
    >>> west_star = ["Curry","KD","Harden"]
    >>> all_star = [west_star,east_star]
    >>> print(all_star)
    [['Curry', 'KD', 'Harden'], ['Irving', 'Wall', 'Love']]
  • 或者
    >>> all_star = [["Kobe","TMAC"],["LBJ","BOSH"]]
    >>> print(all_star)
    [['Kobe', 'TMAC'], ['LBJ', 'BOSH']]
    列表支持增刪改查

    所有序列類型都可以進(jìn)行某些特定操作,由對象屬性決定。這些操作包括:索引(indexing)、切片(sliceing)、加(adding)、乘(multiplying)以及檢查某些元素是否屬于序列成員、計(jì)算序列長度、找出最大、最小元素的內(nèi)置函數(shù)。

查,使用單個索引一次能取出一個元素,使用切片,可以取出指定范圍內(nèi)的元素,分片通過兩個冒號相隔的兩個索引值實(shí)現(xiàn)。

  • 例子1,單個索引獲取元素,獲取all_star列表中名叫Kobe的元素
    >>> all_star = ["Kobe","TMAC","LBJ"]
    #元素的下標(biāo)也就是索引,從0開始,逐個遞增。Kobe的元素下標(biāo)為0,TMAC為1,LBJ為2
    >>> print(all_star[0]) 
    Kobe
    >>> all_star = [["Kobe","TMAC"],["LBJ","BOSH"]]
    >>> print(all_star[0][0])
    Kobe
  • 例子2,切片的使用
    >>> all_star = ['Curry', 'KD', 'Harden','Irving', 'Wall', 'Love']
    #索引范圍,左側(cè)包含,右側(cè)不包含,當(dāng)想取前3個元素的話,切片范圍為0:3.
    >>> all_star[0:3]    
    ['Curry', 'KD', 'Harden']
    #從第一個元素,取到最后一個元素
    >>> all_star[1:]    
    ['KD', 'Harden', 'Irving', 'Wall', 'Love']
    #忽略第一個和最后一個元素
    >>> all_star[1:-1]   
    ['KD', 'Harden', 'Irving', 'Wall']
    #從第二個元素開始,每隔一個取一個,2表示步長,默認(rèn)步長為1.
    >>> all_star[1:-1:2] 
    ['KD', 'Irving']
    #在下標(biāo)為2的位置,從右向左取值,直到最后一個值。
    >>> all_star[2::-1]  
    ['Harden', 'KD', 'Curry']

    增,append(),insert()

  • 例子:
    >>> all_star
    ['Curry', 'KD', 'Harden', 'Irving', 'Wall', 'Love']
    #把元素添加到最后
    >>> all_star.append("LBJ")    
    >>> all_star
    ['Curry', 'KD', 'Harden', 'Irving', 'Wall', 'Love', 'LBJ']
    #把元素插入到指定位置
    >>> all_star.insert(2,"Westbrook")    
    >>> all_star
    ['Curry', 'KD', 'Westbrook', 'Harden', 'Irving', 'Wall', 'Love', 'LBJ']

    改,采用直接替換的方式

  • 例子:
    >>> all_star
    ['Curry', 'KD', 'Westbrook', 'Harden', 'Irving', 'Wall', 'Love', 'LBJ']
    #為需要替換的元素下標(biāo)賦予新值
    >>> all_star[6]="George"    
    >>> all_star
    ['Curry', 'KD', 'Westbrook', 'Harden', 'Irving', 'Wall', 'George', 'LBJ']

    刪,remove()、pop()、del

  • 例子:
    #remove()方法直接刪除內(nèi)容
    >>> all_star.remove("LBJ")    
    >>> all_star
    ['Curry', 'KD', 'Westbrook', 'Harden', 'Irving', 'Wall', 'George']
    #pop()方法根據(jù)索引值刪除內(nèi)容,并返回刪除的值
    >>> all_star.pop(6)          
    'George'
    >>> all_star
    ['Curry', 'KD', 'Westbrook', 'Harden', 'Irving', 'Wall']
    #del命令根據(jù)索引值刪除內(nèi)容,沒有返回
    >>> del all_star[5]           
    >>> all_star       
    ['Curry', 'KD', 'Westbrook', 'Harden', 'Irving']
    #del命令刪除列表對象
    >>> del all_star              
    >>> all_star      
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    NameError: name 'all_star' is not defined

    一些內(nèi)置函數(shù):

  • count() 統(tǒng)計(jì)元素出現(xiàn)的次數(shù)
    >>> list1 = [1,2,3,4,5,4,3,2,1,1,0,1]
    >>> list1.count(1)
    4
  • extend() 在列表末尾一次性追加另一個序列中的多個值,有擴(kuò)展列表的功能。
    >>> list1 = [1,2,3] 
    >>> list2 = [4,5,6]
    >>> list1.extend(list2)
    >>> list1
    [1, 2, 3, 4, 5, 6]
  • index() 獲取索引值,當(dāng)我們知道一個序列的值而不知道期下標(biāo)是多少,可以使用index函數(shù)
    >>> list1
    [1, 2, 3, 4, 5, 6]
    >>> list1.index(4)
    3
  • reverse() 調(diào)轉(zhuǎn)序列順序
    >>> list1 = [1,2,3,4,5,6] 
    >>> list1.reverse()
    >>> print(list1)
    [6, 5, 4, 3, 2, 1]
  • sort() 排序
    >>> list1 = [1,9,3,7,2,6,0]
    >>> list1.sort()
    >>> list1
    [0, 1, 2, 3, 6, 7, 9]
    >>> list1.sort(reverse=True) 
    >>> list1
    [9, 7, 6, 3, 2, 1, 0]
  • len() 獲取序列長度
    >>> len(list1)
    7
  • max() 獲取序列的最大值
    >>> max(list1)
    9
  • min() 獲取元素的最小值
    >>> min(list1)
    0
  • list() 適用于所有類型的序列。字符串不能像列表一樣被修改,所以有時根據(jù)字符串創(chuàng)建列表會很有用
    >>> h = list("hello")
    >>> h
    ['h', 'e', 'l', 'l', 'o']
  • join() 可以將一個由字符串組成的列表轉(zhuǎn)換為字符串
    >>> ''.join(h)
    'hello'
    元組 Tuple,只讀列表

    元組使用 () 定義,()中的元素使用逗號隔開。元組也可以通過索引和切片獲取元素的值,方法和列表一樣。

字典 Dictionary

字典是Python中唯一的映射類型,采用鍵值對的形式無序存儲數(shù)據(jù),鍵不可修改,且唯一;值可以修改。

創(chuàng)建方法:使用 {} 定義字典

>>> dic = {'name':'wt'}
>>> dic=dict((['name','wt'],['a','b'],))

對字典的值進(jìn)行初始化:

>>> all_star = dict.fromkeys(['work','hobby'],'basketball')
>>> print(all_star)
{'work': 'basketball', 'hobby': 'basketball'}
字典也支持增刪改查

  • 例子
    >>> dic1 = {'name':'wt'}
    >>> dic1['age'] = 21
    >>> dic1
    {'name': 'wt', 'age': 21}

    改:這里介紹3種改的方式

  • 例子
    >>> dic1
    {'name': 'wt', 'age': 21}
    #直接對鍵進(jìn)行賦值,有則修改,沒有就會創(chuàng)建
    >>> dic1['name'] = 'Kobe'       
    >>> dic1
    {'name': 'Kobe', 'age': 21}
    #使用內(nèi)置的setdefault方法,如果鍵存在,不改動,返回字典中該鍵對應(yīng)的值;如果不存在,增加新的鍵值對,并返回新增鍵值對值
    >>> dic1.setdefault('age',22)
    21
    >>> dic1
    {'name': 'Kobe', 'age': 21}
    #update方法,當(dāng)dic1字典中有就更新,沒有則將dic2字典中的鍵值對添加到dic1中
    >>> dic1 = {'name':'Kobe','age':21}
    >>> dic2 = {'name':'TMAC','hobby':'basketball'}
    >>> dic1.update(dic2)
    >>> dic1
    {'name': 'TMAC', 'age': 21, 'hobby': 'basketball'}

    查:

  • 例子
    >>> dic1 = {'name': 'TMAC', 'age': 21, 'hobby': 'basketball'}
    #獲取指定鍵的值
    >>> dic1['name']
    'TMAC'
    #通過keys方法獲取字典包含的鍵
    >>> dic1.keys()
    dict_keys(['name', 'age', 'hobby'])
    #通過values()方法獲取字典的值
    >>> dic1.values()
    dict_values(['TMAC', 21, 'basketball'])
    #通過items()方法獲取字典的所有鍵值對
    >>> dic1.items()
    dict_items([('name', 'TMAC'), ('age', 21), ('hobby', 'basketball')])

    刪:

  • 例子
    >>> dic1
    {'name': 'TMAC', 'age': 21, 'hobby': 'basketball'}
    #使用del命令刪除指定鍵的值
    >>> del dic1['hobby']
    >>> dic1
    {'name': 'TMAC', 'age': 21}
    #clear()方法清空字典
    >>> dic1.clear()
    >>> dic1
    {}
    #pop()方法刪除指定鍵的值,并返回該值
    >>> dic1 = {'name':'Kobe','age':21}
    >>> dic1.pop('name')
    'Kobe'
    >>> dic1
    {'age': 21}
    #popitem()方法隨機(jī)刪除鍵值對,并返回刪除的鍵值對
    >>> dic1 = {'name':'Kobe','age':21}
    >>> dic1.popitem()
    ('age', 21)

    字典嵌套:字典里可以包含字典、列表等。

    books = {
    "日本作家" : {
    "村上春樹":["且聽風(fēng)吟","沒有女人的男人們","1Q84","多崎作"],
    "井上靖":["敦煌"],
    "東野圭吾":["白夜行","解憂雜貨鋪","放學(xué)后"]
    },
    "歐美作家" : {
    "昆德拉":["慶祝無意義","不能承受生命之輕"],
    "菲茨杰拉德":["了不起的蓋茨比"]
    },
    "中國作家" : {
    "路遙":["平凡的世界","人生"],
    "金庸":["天龍八部","射雕英雄傳","笑傲江湖"]
    }
    }
    >>> print(books['日本作家']['村上春樹'][1])
    沒有女人的男人們

    字典的排序:字典默認(rèn)根據(jù)鍵排序,列表根據(jù)值排序

    >>> dic1 = {24:'Kobe',1:'TMAC',30:'Curry',23:'LBJ'}
    >>> dic1
    {24: 'Kobe', 1: 'TMAC', 30: 'Curry', 23: 'LBJ'}
    #字典默認(rèn)按鍵排序
    >>> print(sorted(dic1.items()))
    [(1, 'TMAC'), (23, 'LBJ'), (24, 'Kobe'), (30, 'Curry')]
    #按值排序
    >>> print(sorted(dic1.values()))
    ['Curry', 'Kobe', 'LBJ', 'TMAC']

    使用for循環(huán),打印字典的鍵值

    #打印鍵
    >>> for i in dic1:
    ...   print(i)
    ... 
    24
    1
    30
    23
    #打印鍵值
    >>> for i in dic1:
    ...   print(i,dic1[i])
    ... 
    24 Kobe
    1 TMAC
    30 Curry
    23 LBJ

網(wǎng)站欄目:Python數(shù)據(jù)結(jié)構(gòu)之列表元組字典的用法
文章分享:http://chinadenli.net/article18/joscgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、App設(shè)計(jì)外貿(mào)建站、網(wǎng)站收錄小程序開發(fā)

廣告

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

外貿(mào)網(wǎng)站制作