目錄
- 列表(List)
- 常用方式
- 字典(dictionary)
- 常用方式
- 組合使用
- 列表嵌套列表
- 列表嵌套字典
- 字典嵌套字典
- 字典嵌套列表
- 嵌套什么時(shí)候用
- 參考文獻(xiàn)
python中字典和列表的使用,在數(shù)據(jù)處理中應(yīng)該是最常用的,這兩個(gè)熟練后基本可以應(yīng)付大部分場(chǎng)景了。不過網(wǎng)上的基礎(chǔ)教程只告訴你列表、字典是什么,如何使用,很少做組合說明。
剛好工作中采集prometheus監(jiān)控接口并做數(shù)據(jù)處理的時(shí)候,用了很多組合場(chǎng)景,列出幾個(gè)做一些分享。
列表(List)
序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu)。序列中的每個(gè)元素都分配一個(gè)數(shù)字 - 它的位置,或索引,第一個(gè)索引是0,第二個(gè)索引是1,依此類推。
列表是最常用的Python數(shù)據(jù)類型,它可以作為一個(gè)方括號(hào)內(nèi)的逗號(hào)分隔值出現(xiàn)。
列表的數(shù)據(jù)項(xiàng)不需要具有相同的類型
特點(diǎn)就是:可重復(fù),類型可不同
常用方式
創(chuàng)建一個(gè)列表,只要把逗號(hào)分隔的不同數(shù)據(jù)項(xiàng)使用方括號(hào)括起來即可。如下所示:
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用來連接list
list1.extend([7, 8]) ##['apple', 'banana', 2008, 2021, 3, 7, 8]
### insert 將單個(gè)元素插入到list中
list3.insert(2, 'q') ##['a', 'b', 'q', 'c', 'd']
### 獲取列表的長度
print(len(list1)) ## 5
### 遍歷list
for name in list1:
print(name)
extend(擴(kuò)展)與append(追加)的看起來類似,但實(shí)際上完全不同。
- extend接受一個(gè)參數(shù),這個(gè)參數(shù)總是一個(gè)list,并且把這個(gè)list中每個(gè)元素添加到原list中。
- append接受一個(gè)參數(shù),這個(gè)參數(shù)可以是任何數(shù)據(jù)類型,并且簡單地追加到list的尾部。
字典(dictionary)
字典是另一種可變?nèi)萜髂P?,且可存?chǔ)任意類型對(duì)象。
- 鍵(key)必須是唯一的,可以用數(shù)字,字符串或元組充當(dāng),而用列表就不行
- 同一個(gè)鍵出現(xiàn)兩次,最后出現(xiàn)的會(huì)更新前一個(gè)的值。
常用方式
字典的每個(gè)鍵值 key=>value
對(duì)用冒號(hào):
分割,每個(gè)鍵值對(duì)之間用逗號(hào),
分割,整個(gè)字典包括在花括號(hào) {}
中 ,格式如下所示:
>>> 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 # 刪除字典
組合使用
列表里也能嵌套列表,列表里能嵌套字典
字典里能嵌套字典,字典里也能嵌套列表
這是非常靈活的。
列表嵌套列表
這個(gè)用得不多,相對(duì)也比較簡單,直接看例子:
### 打印輸出字符 5
l = [[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)獲取字典里每個(gè)鍵值對(duì):
>>> for i in range(len(li)):
... for k, v in li[i].items():
... print(k, v)
...
a 1
b 2
c 3
###(2) 獲取字典里每個(gè)鍵值對(duì)(元組數(shù)據(jù)類型):
>>> for i in range(len(li)):
... for j in li[i].items():
... print(j)
...
('a', 1)
('b', 2)
('c', 3)
### 可以看到第二種獲取到的鍵值對(duì)是 元組數(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 = {
'水果':['蘋果','香蕉','橘子'],
'動(dòng)物':['獅子','老虎','大象'],
'語言':['中文','英文','日語'],
}
### 訪問字典里的值
>>> print(dict['水果'])
['蘋果', '香蕉', '橘子']
### 訪問列表里的值
>>> print(dict['語言'][1])
英文
### 循環(huán)打印輸出看效果
>>> for k, v in dict.items():
... print('\n', k, end=':')
... for x in v:
... print(x,end=' ')
...
水果:蘋果 香蕉 橘子
動(dòng)物:獅子 老虎 大象
語言:中文 英文 日語
嵌套什么時(shí)候用
比如希望存儲(chǔ)年級(jí)前100名學(xué)生的各科成績時(shí),由于學(xué)生是由成績進(jìn)行排名的,列表是有序的數(shù)據(jù)類型,而字典是無序的數(shù)據(jù)類型,所以外面會(huì)用列表去存儲(chǔ)所有的數(shù)據(jù)。
而對(duì)于學(xué)生的各科成績來說,看重的不是有序,而是需要科目和成績一一對(duì)應(yīng),這才是最重要的。或者說當(dāng)我想獲取到年紀(jì)第十名同學(xué)的語文成績,那么可以直接去獲取到列表對(duì)應(yīng)的索引,和字典里對(duì)應(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- python字典的元素訪問實(shí)例詳解
- Python基礎(chǔ)之字典常見操作經(jīng)典實(shí)例詳解
- python字符串,元組,列表,字典互轉(zhuǎn)代碼實(shí)例詳解
- Python字典深淺拷貝與循環(huán)方式方法詳解
- Python字典添加,刪除,查詢等相關(guān)操作方法詳解
- Python 字典詳解