日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python3 基础学习笔记 C05【字典】

發(fā)布時間:2023/12/10 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python3 基础学习笔记 C05【字典】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CSDN 課程推薦:《8小時Python零基礎輕松入門》,講師齊偉,蘇州研途教育科技有限公司CTO,蘇州大學應用統(tǒng)計專業(yè)碩士生指導委員會委員;已出版《跟老齊學Python:輕松入門》《跟老齊學Python:Django實戰(zhàn)》、《跟老齊學Python:數據分析》和《Python大學實用教程》暢銷圖書。


Python3 基礎學習筆記第五章【字典】

目錄

  • 【5.1】一個簡單的字典
    • 【5.1.1】訪問字典中的值
    • 【5.1.2】添加鍵-值對
    • 【5.1.3】修改字典中的值
    • 【5.1.4】刪除鍵-值對
    • 【5.1.5】由類似對象組成的字典
  • 【5.2】遍歷字典
    • 【5.2.1】方法 items() 遍歷所有的鍵-值對
    • 【5.2.2】方法 keys() 遍歷字典中所有的鍵
    • 【5.2.3】函數 sorted() 按順序遍歷字典中的所有鍵
    • 【5.2.4】方法 values() 遍歷字典中的所有值
  • 【5.3】嵌套
    • 【5.3.1】字典列表
    • 【5.3.2】在字典中存儲列表
    • 【5.3.3】在字典中存儲字典
  • 【5.4】其他方法
    • 【5.4.1】方法 clear() 刪除字典內所有元素
    • 【5.4.2】方法 fromkeys() 用于創(chuàng)建一個新字典
    • 【5.4.3】方法 get() 返回指定鍵的值
    • 【5.4.4】方法 \_\_contains\_\_() 判斷鍵是否存在于字典中
    • 【5.4.5】方法 setdefault() 為鍵的值設置默認值。
    • 【5.4.6】方法 update() 把一個字典的鍵值對更新到另一個字典里


【5.1】一個簡單的字典

fruits = {'apple' : 'red' , 'number' : 5} print(fruits['apple']) print(fruits['number'])

輸出結果如下:

red 5

在Python中,字典是一系列鍵-值對。每個鍵都與一個值相關聯,你可以使用鍵來訪問與之相關聯的值。與鍵相關聯的值可以是數字、字符串、列表乃至字典。事實上,可以將任何Python對象用作字典中的值。鍵-值對是兩個相關聯的值。在指定鍵時,Python將返回與之相關聯的值。鍵和值之間用冒號分隔,而鍵-值對之間用逗號分隔。在字典中,想儲存多少個鍵-值對都可以

【5.1.1】訪問字典中的值

要獲取與鍵相關聯的值,可依次指定字典名和放在方括號內的鍵:

fruits = {'apple' : 'red' , 'number' : 5} number_fruits = fruits['number'] print("The number of apple is " + str(number_fruits) + "!")

輸出結果如下:

The number of apple is 5!

【5.1.2】添加鍵-值對

字典是一種動態(tài)結構,可隨時在其中添加鍵-值對。要添加鍵-值對,可依次指定字典名、用方括號括起來的鍵和相關聯的值

fruits = {'apple' : 'red' , 'number1' : 5} print(fruits) fruits['banana'] = 'yellow' fruits['number2'] = 13 print(fruits)

輸出結果如下:

{'apple': 'red', 'number1': 5} {'apple': 'red', 'number1': 5, 'banana': 'yellow', 'number2': 13}

注意:鍵-值對的排列順序與添加順序不同。Python不關心鍵-值對的添加順序,而只關心鍵和值之間的關聯關系

有時候為了方便也可以先使用一對空的花括號定義一個字典,再分行添加各個鍵-值對:

fruits = {} fruits['banana'] = 'yellow' fruits['number2'] = 13 print(fruits)

輸出結果如下:

{'banana': 'yellow', 'number2': 13}

【5.1.3】修改字典中的值

要修改字典中的值,可依次指定字典名、用方括號括起來的鍵以及與該鍵相關聯的新值

fruits = {'color' : 'red'} print("The color of the fruits is " + fruits['color'] + "!") fruits['color'] = 'yellow' print("The color of the fruits is " + fruits['color'] + " now!")

輸出結果如下:

The color of the fruits is red! The color of the fruits is yellow now!

進階:對一個能夠以不同速度移動的外星人的位置進行跟蹤,為此,我們將儲存該外星人的當前速度,并據此確定該外星人將向右移動多遠:

alien = {'x_position': 0, 'y_position': 25, 'speed': 'medium'} print("Original x-position: " + str(alien['x_position']))#向右移動外星人,據外星人當前速度決定將其移動多遠 if alien['speed'] == 'slow':x_increment = 1 elif alien['speed'] == 'medium':x_increment = 2 else:x_increment = 3#新位置等于老位置加上增量 alien['x_position'] = alien['x_position'] + x_increment print("New x_position: " + str(alien['x_position']))

輸出結果如下:

Original x-position: 0 New x_position: 2

【5.1.4】刪除鍵-值對

對于字典中不再需要的信息,可使用del語句將相應的鍵-值對徹底刪除。使用del語句時,必須指定字典名和要刪除的鍵

fruits = {'apple' : 'red' , 'number' : 5} print(fruits) del fruits['number'] print(fruits)

輸出結果如下:

{'apple': 'red', 'number': 5} {'apple': 'red'}

【5.1.5】由類似對象組成的字典

字典儲存的可以是一個對象的多種信息,也可以儲存眾多對象的同一種信息,例如要調查很多人最喜歡的編程語言:

favorite_languages = {'jen' : 'python' ,'sarah' : 'c' ,'edward' : 'ruby' ,'phil' : 'java' ,} print("Sarah's favorite languages is " + favorite_languages['sarah'].title() + "!")

輸出結果如下:

Sarah's favorite languages is C!

【5.2】遍歷字典

【5.2.1】方法 items() 遍歷所有的鍵-值對

使用for循環(huán)來遍歷字典:

name = {'username' : 'efermi' ,'first' : 'enrico' ,'last' : 'fermi' ,} for key , value in name.items():print("\nKey: " + key)print("Value: " + value)

輸出結果如下:

Key: username Value: efermiKey: first Value: enricoKey: last Value: fermi

for語句的第二部分包含字典和方法items(),它返回一個鍵-值對列表。接下來,for循環(huán)依次將每個鍵-值對儲存到指定的兩個變量中

favorite_languages = {'jen' : 'python' ,'sarah' : 'c' ,'edward' : 'ruby' ,'phil' : 'java' ,} for name, language in favorite_languages.items():print(name.title() + "'s favorite language is " + language.title() + ".")

輸出結果如下:

Jen's favorite language is Python. Sarah's favorite language is C. Edward's favorite language is Ruby. Phil's favorite language is Java.

【5.2.2】方法 keys() 遍歷字典中所有的鍵

在不需要使用字典中的值時,方法key()很有用,下面來遍歷字典favorite_languages,并將每個被調查者的名字都打印出來:

favorite_languages = {'jen' : 'python' ,'sarah' : 'c' ,'edward' : 'ruby' ,'phil' : 'java' ,} for name in favorite_languages.keys():print(name.title())

輸出結果如下:

Jen Sarah Edward Phil

遍歷字典時,會默認遍歷所有的鍵,因此,如果將上述代碼中的for name in favorite_languages.keys():替換為for name in favorite_languages:輸出結果將不變
進階:

favorite_languages = {'jen' : 'python' ,'sarah' : 'c' ,'edward' : 'ruby' ,'phil' : 'java' ,} friends = ['phil', 'sarah'] for name in favorite_languages.keys():print(name.title())if name in friends:print("Hi " + name + ", I see your favorite languages is " + favorite_languages[name].title() + "!")

輸出結果如下:

Jen Sarah Hi sarah, I see your favorite languages is C! Edward Phil Hi phil, I see your favorite languages is Java!

【5.2.3】函數 sorted() 按順序遍歷字典中的所有鍵

字典總是明確地記錄鍵和值之間的關聯關系,但獲取字典的元素時,獲取順序是不可預測的,要以特定的順序返回元素,一種辦法是在for循環(huán)中對返回的鍵進行排序,為此,可以使用函數sorted()來獲得按特定順序排列的鍵列表的副本:

favorite_languages = {'jen' : 'python' ,'sarah' : 'c' ,'edward' : 'ruby' ,'phil' : 'java' ,} for name in sorted(favorite_languages.keys()):print(name.title())

輸出結果如下:

Edward Jen Phil Sarah

【5.2.4】方法 values() 遍歷字典中的所有值

favorite_languages = {'jen' : 'python' ,'sarah' : 'c' ,'edward' : 'ruby' ,'phil' : 'java' ,} for languages in favorite_languages.values():print(languages.title())

輸出結果如下:

Python C Ruby Java

這種做法提取字典中所有的值,而沒有考慮是否重復,為剔除重復項,可使用集合(set),集合類似于列表,但每個元素都必須是獨一無二的:

favorite_languages = {'jen' : 'python' ,'sarah' : 'c' ,'edward' : 'ruby' ,'phil' : 'python' ,} for languages in set(favorite_languages.values()):print(languages.title())

輸出結果如下:

C Python Ruby

【5.3】嵌套

有時候,需要將一系列字典儲存在列表中,或將列表作為值儲存在字典中,這稱為嵌套??梢栽诹斜碇星短鬃值?、在字典中嵌套列表甚至在字典中嵌套字典

【5.3.1】字典列表

下面代碼創(chuàng)建三個字典,每個字典都表示一個個學生,將這三個字典都放到一個名為students的列表當中,遍歷列表將每個學生都打印出來:

student_0 = {'name' : 'anily' , 'class' : 2} student_1 = {'name' : 'nikey' , 'class' : 5} student_2 = {'name' : 'heyk' , 'class' : 3} students = [student_0 , student_1 , student_2] for student in students:print(student)

輸出結果如下:

{'name': 'anily', 'class': 2} {'name': 'nikey', 'class': 5} {'name': 'heyk', 'class': 3}

進階:使用 range() 自動生成三十個外星人:

#創(chuàng)建一個用于存儲外星人的空列表 aliens = []#創(chuàng)建三十個綠色的外星人 for alien_number in range(30):new_alien = {'color' : 'green' , 'points' : 5 , 'speed' : 'slow'}aliens.append(new_alien)#顯示前五個外星人 for alien in aliens[:5]:print(alien) print("......")#顯示創(chuàng)建了多少外星人 print("Total number of aliens: " + str(len(aliens)))

輸出結果如下:

{'color': 'green', 'points': 5, 'speed': 'slow'} {'color': 'green', 'points': 5, 'speed': 'slow'} {'color': 'green', 'points': 5, 'speed': 'slow'} {'color': 'green', 'points': 5, 'speed': 'slow'} {'color': 'green', 'points': 5, 'speed': 'slow'} ...... Total number of aliens: 30

在上述例子中,雖然每個外星人都具有相同特征,但在Python看來,每個外星人都是獨立的,我們可以獨立地修改每個外星人:

aliens = [] for alien_number in range(30):new_alien = {'color' : 'green' , 'points' : 5 , 'speed' : 'slow'}aliens.append(new_alien) for alien in aliens[0:3]:if alien['color'] == 'green':alien['color'] = 'yellow'alien['points'] = 10alien['speed'] = 'medium' for alien in aliens[:5]:print(alien) print("......") print("Total number of aliens: " + str(len(aliens)))

輸出結果如下:

{'color': 'yellow', 'points': 10, 'speed': 'medium'} {'color': 'yellow', 'points': 10, 'speed': 'medium'} {'color': 'yellow', 'points': 10, 'speed': 'medium'} {'color': 'green', 'points': 5, 'speed': 'slow'} {'color': 'green', 'points': 5, 'speed': 'slow'} ...... Total number of aliens: 30

【5.3.2】在字典中存儲列表

有時候需要將列表儲存在字典中,而不是將字典儲存在列表中:
例一:

#儲存所點比薩的信息 pizza = {'crust' : 'thick' ,'toppings' : ['mushrooms' , 'extra chees'] ,}#概述所點的比薩 print("You ordered a " + pizza['crust'] + "-crust pizza" + "with the following toppings :" ) for topping in pizza['toppings']:print("\t" + topping)

輸出結果如下:

You ordered a thick-crust pizzawith the following toppings :mushroomsextra chees

例二:

favorite_languages = {'jen' : ['python' , 'ruby'] ,'sarah' : ['c'] ,'edward' : ['go' , 'ruby'] ,'phil' : ['python' , 'java'] ,} for name , languages in favorite_languages.items():print("\n" + name.title() + "'s favorite languages are:")for language in languages:print("\t" + language.title())

輸出結果如下:

Jen's favorite languages are:PythonRubySarah's favorite languages are:CEdward's favorite languages are:GoRubyPhil's favorite languages are:PythonJava

【5.3.3】在字典中存儲字典

users = {'aeinstein' : {'first' : 'albert' ,'last' : 'einstein' ,'location' : 'princeton' ,} ,'mcurie' : {'first' : 'marie' ,'last' : 'curie' ,'location' : 'paris' ,} ,} for username , user_info in users.items():print("\nUsername : " + username)full_name = user_info['first'] + " " + user_info['last']location = user_info['location']print("\tFull name : " + full_name.title())print("\tlocation : " + location .title())

輸出結果如下:

Username : aeinsteinFull name : Albert Einsteinlocation : PrincetonUsername : mcurieFull name : Marie Curielocation : Paris

【5.4】其他方法

【5.4.1】方法 clear() 刪除字典內所有元素

dict = {'Name': 'TRHX','Age': 20 }print(len(dict)) dict.clear() print(len(dict))

輸出結果如下:

2 0

【5.4.2】方法 fromkeys() 用于創(chuàng)建一個新字典

基本語法:dict.fromkeys(seq[, value])

fromkeys() 方法用于創(chuàng)建一個新字典,以序列 seq 中元素做字典的鍵,value 為字典所有鍵對應的初始值。

seq = ('A', 'B', 'C')dict1 = dict.fromkeys(seq) print("新字典 dict1 為 : %s" % dict1)dict2 = dict.fromkeys(seq, 10) print("新字典 dict2 為 : %s" % dict2)

輸出結果如下:

新字典 dict1 為 : {'A': None, 'B': None, 'C': None} 新字典 dict2 為 : {'A': 10, 'B': 10, 'C': 10}

注意:fromkeys() 方法只用來創(chuàng)建新字典,不負責保存。當通過一個字典來調用 fromkeys() 方法時,如果需要后續(xù)使用一定記得給他復制給其他的變量。

【5.4.3】方法 get() 返回指定鍵的值

基本語法:dict.get(key, default=None)

get() 方法返回指定鍵的值,如果值不在字典中則返回默認值。

dict = {'Name': 'TRHX', 'Age': 20}print('Value : %s' % dict.get('Age')) print('Value : %s' % dict.get('Sex')) print('Value : %s' % dict.get('Height', 'Unknown'))

輸出結果如下:

Value : 20 Value : None Value : Unknown

【5.4.4】方法 __contains__() 判斷鍵是否存在于字典中

基本語法:__contains__(key)

__contains__(key) 方法用于判斷鍵是否存在于字典中,如果鍵在字典里返回 true,否則返回 false。在 Python 2.x 的版本中,使用的是 dict.has_key(key) 方法。

dict = {'Name': 'TRHX', 'Age': 20}print('Value : %s' % dict.__contains__('Age')) print('Value : %s' % dict.__contains__('Sex'))

輸出結果如下:

Value : True Value : False

【5.4.5】方法 setdefault() 為鍵的值設置默認值。

基本語法:dict.setdefault(key, default=None)

setdefault() 方法和 get() 方法類似,如果字典中包含有給定鍵,則返回該鍵對應的值;如果鍵不存在于字典中,將會添加鍵并將值設為默認值。

dict = {'Name1': 'T1', 'Name2': 'T2'}print('Value : %s' % dict.setdefault('Name1')) print('Value : %s' % dict.setdefault('Name2', 'T3')) print('Value : %s' % dict.setdefault('Name3', 'T3')) print('Value : %s' % dict.setdefault('Name4')) print(dict)

輸出結果如下:

Value : T1 Value : T2 Value : T3 Value : None {'Name1': 'T1', 'Name2': 'T2', 'Name3': 'T3', 'Name4': None}

【5.4.6】方法 update() 把一個字典的鍵值對更新到另一個字典里

基本語法:dict.update(dict2)

update() 方法把一個字典的鍵值對更新到另一個字典里。

  • 兩個字典有相同的鍵時:會使用新的字典中該 key 對應的 value 值。
  • 有新的鍵時:會直接把新的字典中的 key、value 加入到原字典中。
dict1 = {'A': '1', 'B': '2'} dict2 = {'A': '3', 'C': '4'}dict1.update(dict2) print('Value : %s' % dict1)

輸出結果如下:

Value : {'A': '3', 'B': '2', 'C': '4'} 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Python3 基础学习笔记 C05【字典】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。