欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實(shí)現(xiàn)有序遍歷dict(字典)

 更新時(shí)間:2023年08月21日 09:12:48   作者:yealxxy  
這篇文章主要介紹了python實(shí)現(xiàn)有序遍歷dict(字典),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

python有序遍歷dict(字典)

大家都知道dict是無(wú)序的,這篇文章介紹dict的有序遍歷。這里我們主要用到一個(gè)python的方法sorted()。

一、sorted()方法介紹

內(nèi)建函數(shù)sorted方法,可以對(duì)所有可迭代的對(duì)象進(jìn)行排序操作。

1.方法-sorted(iterable, key=None, reverse=False):

  • iterable,可以看到其中第一個(gè)參數(shù)是可迭代對(duì)象;
  • key,主要是用來(lái)進(jìn)行比較的元素,只有一個(gè)參數(shù),具體的函數(shù)的參數(shù)就是取自于可迭代對(duì)象中,指定可迭代對(duì)象中的一個(gè)元素來(lái)進(jìn)行排序;
  • reverse,是否反轉(zhuǎn),默認(rèn)情況下不反轉(zhuǎn);

2.sorted()的理解,對(duì)list的排序?yàn)槔?/strong>

def test_sorted():
    L = [('b', 2), ('a', 1), ('c', 3), ('d', 0)]
    print(sorted(L,key=lambda x:x[0])) # 用第一項(xiàng)排序
    print(sorted(L,key=lambda x:x[1])) # 用第二項(xiàng)排序
test_sorted()
輸出:
[('a', 1), ('b', 2), ('c', 3), ('d', 0)]
[('d', 0), ('a', 1), ('b', 2), ('c', 3)]

二、dict按key有序遍歷

def sort_by_key(dic):
    for key in sorted(dic):
        print(key,dic[key])
dic = {1:2,4:2,6:1,0:5}
sort_by_key(dic)
輸出:
0 5
1 2
4 2
6 1

三、dict按value有序遍歷

def sort_by_value(dic):
    for key,value in sorted(dic.items(),key=lambda x:x[1]):
        print(key,value)
dic = {1:2,4:2,6:1,0:5}
sort_by_value(dic)
輸出:
6 1
1 2
4 2
0 5

python的dict用法

一、dict

python中的dict(字典)就是來(lái)保存這種映射,在dict中每一個(gè)key和value 是一一對(duì)應(yīng)的。

【E1】新來(lái)同學(xué)Gaven成績(jī)86,編寫一個(gè)dict,把新同學(xué)成績(jī)添加進(jìn)去。

d = {
    'Alice': 45,
    'Bob': 60,
    'Candy': 75,
    'David': 86,
    'Ellena': 49
}
d ['Gaven'] =86
print(d)
#{'Alice': 45, 'Candy': 75, 'David': 86, 'Ellena': 49, 'Gaven': 86, 'Bob': 60}

二、讀取dict 元素

創(chuàng)建一個(gè)dict ,dict 通過(guò)key找到對(duì)應(yīng)的value的功能。還可以通過(guò)key來(lái)獲取對(duì)應(yīng)的value,dict提供get方法,把key當(dāng)作參數(shù)傳遞給get方法。當(dāng)Key不存在時(shí)也不會(huì)出錯(cuò)。

【E2】根據(jù)如下dict,打印出Alice, Bob, Candy, Mimi, David的成績(jī),當(dāng)同學(xué)不存在時(shí),打印None。

d ={
    'Alice':45,
    'Bob':60,
    'Candy':75,
    'David':86,
    'Ellena':49,
    'Gaven':86
}
print(d['Alice'])
print(d['Bob'])
print(d['Candy'])
print(d['David'])
print(d['Ellena'])
print(d['Gaven'])
print(d.get('Dodo'))

三、添加dict元素

dict和tuple不一樣,dict是可變的,我們隨時(shí)可以往dict中添加新的key-value,value可以是任意類型的元素,可以是list、tuple等,

【E3】Alice、Bob、Candy的最近三次的成績(jī)分別是[50, 61, 66],[80, 61, 66],[88, 75, 90],請(qǐng)更新dict,使得dict可以保存同學(xué)多次的成績(jī)。

d = {
    'Alice': [45],
    'Bob': [60],
    'Candy': [75],
}
d['Alice'] =[50,61,66]
d['Bob'] =[80,61,66]
d['Candy'] =[88,75,90]
print(d)
#{'Bob': [80, 61, 66], 'Alice': [50, 61, 66], 'Candy': [88, 75, 90]}

賦值語(yǔ)句有兩個(gè)功能:

  • 1.當(dāng)key不存在時(shí),往dict中添加對(duì)應(yīng)的key:value元素。
  • 2.當(dāng)key存在時(shí),會(huì)更新dict,用新的value 替換原來(lái)的value。

在使用賦值語(yǔ)句往dict中添加元素時(shí),為了避免不必要的覆蓋問(wèn)題,我們需要先判斷key是否存在,然后再做更新。

【E4】請(qǐng)更新Alice的成績(jī)?yōu)?0,并把舊的成績(jī)記錄下來(lái)。

d = {
    'Alice': 45,
    'Bob': 60,
    'Candy': 75,
    'David': 86,
    'Ellena': 49
}
d['Alice'] =60
print(d)

四、刪除dict元素

當(dāng)我們不需要這個(gè)元素時(shí),需要把元素從dict中刪除,pop()方法快速刪除元素。但需要指定需要?jiǎng)h除元素的key,并返回value。

<**注>**pop()方法的參數(shù)是dict中的key,當(dāng)key不存在時(shí),同樣會(huì)引起錯(cuò)誤。

d = {
    'Alice': 45,
    'Bob': 60,
    'Candy': 75,
    'David': 86,
    'Ellena': 49
}
print(d)
alice_score =d.pop('Alice')
print(alice_score)
print(d)
bob_score =d.pop('Bob')
print(bob_score)
print(d)

五、dict的特點(diǎn)查找速度快

查找速度快

dict的第一個(gè)特點(diǎn)是查找速度快,而list的查找速度隨著元素增加而逐漸下降。dict的缺點(diǎn)是占用內(nèi)存大,還會(huì)浪費(fèi)很多內(nèi)容,list正好相反,占用內(nèi)存小,但是查找速度慢。

有序與無(wú)序

在python3.5之前,dict元素插入順序是無(wú)序的。python3.5之后元素有序。

python遍歷dict

遍歷dict有兩種方法

  • 第一種是遍歷dict的所有key,并通過(guò)key獲得對(duì)應(yīng)的value。
  • 第二種方法是通過(guò)dict提供的items()方法,items()方法會(huì)返回dict中所有的元素,每個(gè)元素包含key和value。

【E5】以此輸出同學(xué)的每次成績(jī)。

d = {‘Alice’: [50, 61, 66], ‘Bob’: [80, 61, 66], ‘Candy’: [88, 75, 90]}

d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
for key,value in d.items():
    if value > 60:
        print(key,value)
   ==>  #('Bob', [80, 61, 66])
		#('Alice', [50, 61, 66])
		#('Candy', [88, 75, 90])

六、清除所有元素

dict 提供clear()函數(shù),直接清除dict 中所有元素。

d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
print(d) # ==> {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
d.clear()
print(d)  #====》[]

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python終端輸出彩色字符方法詳解

    Python終端輸出彩色字符方法詳解

    這篇文章主要介紹了Python終端輸出彩色字符方法詳解,需要的朋友可以參考下
    2020-02-02
  • 如何使用python請(qǐng)求傳遞csrftoken

    如何使用python請(qǐng)求傳遞csrftoken

    這篇文章主要介紹了如何使用python請(qǐng)求傳遞csrftoken問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 在CentOS 7中使用Python 3執(zhí)行系統(tǒng)命令的詳細(xì)教程

    在CentOS 7中使用Python 3執(zhí)行系統(tǒng)命令的詳細(xì)教程

    使用os.system()這個(gè)方法簡(jiǎn)單直接,但它不返回命令的輸出,只返回命令的退出狀態(tài),如果你只需要知道命令是否成功執(zhí)行,這個(gè)方法就足夠了,這篇文章主要介紹了在CentOS 7中使用Python 3執(zhí)行系統(tǒng)命令的詳細(xì)教程,需要的朋友可以參考下
    2024-02-02
  • Python 利用argparse模塊實(shí)現(xiàn)腳本命令行參數(shù)解析

    Python 利用argparse模塊實(shí)現(xiàn)腳本命令行參數(shù)解析

    這篇文章主要介紹了Python 利用argparse模塊實(shí)現(xiàn)腳本命令行參數(shù)解析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Python-typing: 類型標(biāo)注與支持 Any類型詳解

    Python-typing: 類型標(biāo)注與支持 Any類型詳解

    這篇文章主要介紹了Python-typing: 類型標(biāo)注與支持 Any類型詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-05-05
  • 使用Python第三方庫(kù)發(fā)送電子郵件的示例代碼

    使用Python第三方庫(kù)發(fā)送電子郵件的示例代碼

    本文主要介紹了使用Python第三方庫(kù)發(fā)送電子郵件的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 用Python給文本創(chuàng)立向量空間模型的教程

    用Python給文本創(chuàng)立向量空間模型的教程

    這篇文章主要介紹了用Python給文本創(chuàng)立向量空間模型的教程,比如文中舉例將文本中的詞頻轉(zhuǎn)為量化的矩陣,需要的朋友可以參考下
    2015-04-04
  • Python基于ImageAI實(shí)現(xiàn)圖像識(shí)別詳解

    Python基于ImageAI實(shí)現(xiàn)圖像識(shí)別詳解

    ImageAI是一個(gè)面向計(jì)算機(jī)視覺(jué)編程的Python庫(kù),支持最先進(jìn)的機(jī)器學(xué)習(xí)算法。本文將利用ImageAI實(shí)現(xiàn)圖像識(shí)別功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-02-02
  • Pytorch中的gather使用方法

    Pytorch中的gather使用方法

    這篇文章主要介紹了Pytorch中的gather使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python 用所有標(biāo)點(diǎn)符號(hào)分隔句子的示例

    python 用所有標(biāo)點(diǎn)符號(hào)分隔句子的示例

    今天小編就為大家分享一篇python 用所有標(biāo)點(diǎn)符號(hào)分隔句子的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07

最新評(píng)論