python 字典和列表嵌套用法詳解
python中字典和列表的使用,在數(shù)據(jù)處理中應(yīng)該是最常用的,這兩個熟練后基本可以應(yīng)付大部分場景了。不過網(wǎng)上的基礎(chǔ)教程只告訴你列表、字典是什么,如何使用,很少做組合說明。
剛好工作中采集prometheus監(jiān)控接口并做數(shù)據(jù)處理的時候,用了很多組合場景,列出幾個做一些分享。
列表(List)序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu)。序列中的每個元素都分配一個數(shù)字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。
列表是最常用的Python數(shù)據(jù)類型,它可以作為一個方括號內(nèi)的逗號分隔值出現(xiàn)。
列表的數(shù)據(jù)項不需要具有相同的類型
特點(diǎn)就是:可重復(fù),類型可不同
常用方式創(chuàng)建一個列表,只要把逗號分隔的不同數(shù)據(jù)項使用方括號括起來即可。如下所示:
list1 = [’apple’, ’banana’, 2008, 2021]list2 = [1, 2, 3, 4, 5 ]list3 = ['a', 'b', 'c', 'd']### 向list中增加元素list1.append(3) ## [’apple’, ’banana’, 2008, 2021, 3]### 使用extend用來連接listlist1.extend([7, 8]) ##[’apple’, ’banana’, 2008, 2021, 3, 7, 8]### insert 將單個元素插入到list中l(wèi)ist3.insert(2, ’q’) ##[’a’, ’b’, ’q’, ’c’, ’d’]### 獲取列表的長度print(len(list1)) ## 5### 遍歷listfor name in list1: print(name)
extend(擴(kuò)展)與append(追加)的看起來類似,但實(shí)際上完全不同。
extend接受一個參數(shù),這個參數(shù)總是一個list,并且把這個list中每個元素添加到原list中。 append接受一個參數(shù),這個參數(shù)可以是任何數(shù)據(jù)類型,并且簡單地追加到list的尾部。字典(dictionary)字典是另一種可變?nèi)萜髂P停铱纱鎯θ我忸愋蛯ο蟆?/p> 鍵(key)必須是唯一的,可以用數(shù)字,字符串或元組充當(dāng),而用列表就不行 同一個鍵出現(xiàn)兩次,最后出現(xiàn)的會更新前一個的值。常用方式
字典的每個鍵值 key=>value 對用冒號:分割,每個鍵值對之間用逗號,分割,整個字典包括在花括號 {} 中 ,格式如下所示:
>>> dict = {’a’: 1, ’b’: 2, ’b’: ’3’}>>> print(dict){’a’: 1, ’b’: ’3’}### 訪問字典里的值>>> print(dict[’b’])3### 更新和添加字典>>> dict[’a’] = 8>>> dict[’c’] = ’cc’>>> print(dict[’a’])8>>> print(dict[’c’])cc### 刪除字典元素>>> del dict[’a’]>>> print(dict){’b’: ’3’, ’c’: ’cc’}>>> dict.clear() # 清空字典所有條目>>> del dict # 刪除字典組合使用
列表里也能嵌套列表,列表里能嵌套字典字典里能嵌套字典,字典里也能嵌套列表這是非常靈活的。
列表嵌套列表這個用得不多,相對也比較簡單,直接看例子:
### 打印輸出字符 5l = [[1,2],[3,4],[[5,6],[7,8]]]>>> print(l[2][0][0])5### 將嵌套列表轉(zhuǎn)為非嵌套列表>>> a = [[1,2,3],[4,5,6],[7],[8,9]]>>> for i in a:... t.extend(i)...>>> print(t)[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 7, 8, 9]列表嵌套字典
在列表中嵌套字典應(yīng)該是最常用的方式了,直接舉例說明:
li = [{’a’: 1}, {’b’: 2}, {’c’: 3}]###(1) 循環(huán)獲取字典里每個鍵值對:>>> for i in range(len(li)):... for k, v in li[i].items():... print(k, v)...a 1b 2c 3 ###(2) 獲取字典里每個鍵值對(元組數(shù)據(jù)類型):>>> for i in range(len(li)):... for j in li[i].items():... print(j)...(’a’, 1)(’b’, 2)(’c’, 3)### 可以看到第二種獲取到的鍵值對是 元組數(shù)據(jù)類型。字典嵌套字典
字典嵌套字典:字符串作為key,字典作為value:
>>> s={’a’:{0:’no’,1:{’f’:{0: ’no’, 1: ’maybe’}}},’b’:{}} #構(gòu)造字典>>> s[’a’][0] # 取值’no’>>> s[’a’][1]{’f’: {0: ’no’, 1: ’maybe’}}>>> s[’a’][1][’f’][1] ’maybe’
### 字典嵌套字典dict = { ’192.168.1.1’:{’cpu’:’0.23’,’內(nèi)存’:’16’,’硬盤’:’500’}, ’192.168.1.2’:{’cpu’:’3.22’,’內(nèi)存’:’64’,’硬盤’:’700’}, ’192.168.1.3’:{’cpu’:’1.99’,’內(nèi)存’:’32’,’硬盤’:’800’},}### for遍歷>>> for k,v in dict.items():... print(’n’,k,end=’: ’)... for x,y in v.items():... print(x,y,end=’ ’)... 192.168.1.1: cpu 0.23 內(nèi)存 16 硬盤 500 192.168.1.2: cpu 3.22 內(nèi)存 64 硬盤 700 192.168.1.3: cpu 1.99 內(nèi)存 32 硬盤 800字典嵌套列表
那么如何在字典里嵌套列表呢?字典嵌套列表:字符串作為key,列表作為value。
### 字典嵌套列表dict = { ’水果’:[’蘋果’,’香蕉’,’橘子’], ’動物’:[’獅子’,’老虎’,’大象’], ’語言’:[’中文’,’英文’,’日語’],}### 訪問字典里的值>>> print(dict[’水果’])[’蘋果’, ’香蕉’, ’橘子’]### 訪問列表里的值>>> print(dict[’語言’][1])英文### 循環(huán)打印輸出看效果>>> for k, v in dict.items():... print(’n’, k, end=’:’)... for x in v:... print(x,end=’ ’)... 水果:蘋果 香蕉 橘子 動物:獅子 老虎 大象 語言:中文 英文 日語嵌套什么時候用
比如希望存儲年級前100名學(xué)生的各科成績時,由于學(xué)生是由成績進(jìn)行排名的,列表是有序的數(shù)據(jù)類型,而字典是無序的數(shù)據(jù)類型,所以外面會用列表去存儲所有的數(shù)據(jù)。
而對于學(xué)生的各科成績來說,看重的不是有序,而是需要科目和成績一一對應(yīng),這才是最重要的。或者說當(dāng)我想獲取到年紀(jì)第十名同學(xué)的語文成績,那么可以直接去獲取到列表對應(yīng)的索引,和字典里對應(yīng)的key就可以了,這樣就能得到相應(yīng)的value。
至于嵌套中的排序用法
參考文獻(xiàn)列表:https://www.runoob.com/python/python-lists.html字典:https://www.runoob.com/python/python-dictionary.html嵌套字典:https://www.pythonf.cn/read/100118#1.2字典嵌套列表
到此這篇關(guān)于python 字典和列表嵌套用法的文章就介紹到這了,更多相關(guān)python 字典和列表嵌套內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. asp(vbscript)中自定義函數(shù)的默認(rèn)參數(shù)實(shí)現(xiàn)代碼2. Ajax實(shí)現(xiàn)表格中信息不刷新頁面進(jìn)行更新數(shù)據(jù)3. jsp EL表達(dá)式詳解4. jsp中sitemesh修改tagRule技術(shù)分享5. JavaWeb Servlet中url-pattern的使用6. 爬取今日頭條Ajax請求7. 如何使用瀏覽器擴(kuò)展篡改網(wǎng)頁中的JS 文件8. ASP基礎(chǔ)知識VBScript基本元素講解9. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)10. JSP servlet實(shí)現(xiàn)文件上傳下載和刪除
