1. 程式人生 > >【Python學習筆記】四、對映(Mapping)

【Python學習筆記】四、對映(Mapping)

• 通過名字來引用值得資料結構稱為對映

字典(Dict)

•   字典是鍵值對(key-value pair)的無序可變集合。

(1)字典的操作

①字典的建立

• 字典中的每個元素包含兩部分:鍵和值。

• 鍵和值用冒號分隔,元素間用逗號分隔,所有元素放在一對大括號中。

d = {key1 : value1, key2 : value2 }

• 字典中的鍵為任意不可變物件,比如整數、實數、複數、字串、元組等。

• 字典中的鍵是唯一的。

• 空字典:{}

• 使用dict()建立字典

>>>d=dict(name=’Python’)

>>>d

{‘name’:’Python’}

②字典的刪除

dict ={'Name':'Runoob','Age':7,'Class':'First'}

del dict['Name']# 刪除鍵 'Name'

dict.clear()     #清空字典

del dict         # 刪除字典

③字典的讀取

•   以鍵作為下標可以讀取字典元素,若鍵不存在則丟擲異常

•   使用字典物件的get方法獲取指定鍵對應的值,並且可以在鍵不存在的時候返回指定值。如不指定,預設返回None。

④字典的新增與修改

• 當以指定鍵為下標為字典賦值時,若鍵存在,則可以修改該鍵的值;若不存在,則表示新增一個鍵、值對

• 使用字典物件的update方法將另一個字典的鍵、值對新增到當前字典物件

⑤字典的其他操作

len(dict)

計算字典元素個數,即鍵的總數。

str(dict)

輸出字典,以可列印的字串表示。

type(variable)

返回輸入的變數型別,如果變數是字典就返回字典型別。

del dict[k]

刪除鍵為k的項

del dict

刪除字典dict

k in dict

檢查dict中是否含有鍵為k的項

(2)字典的方法

方法

功能說明

新增與刪除方法

setdefault

(key,default=None)

如果key在字典中,返回對應的值。

如果不在字典中,則插入key及設定的預設值default,並返回 default default預設值為

None

引數

key -- 查詢的鍵值。

default -- 鍵不存在時,設定的預設鍵值。

update(dict2)

把字典dict2的鍵/值對更新到dict裡

無返回值

引數

dict2 -- 新增到指定字典dict裡的字典。

pop(key[,default])

刪除字典給定鍵key所對應的值,返回值為被刪除的值。

如果沒有給定鍵且未設定default值,就報出KeyError異常

引數

key -- 要刪除的鍵值

default -- 如果沒有 key,返回 default

popitem()

隨機返回並刪除字典中的一對鍵和值。返回的形式為(key,value)

如果字典已經為空,卻呼叫了此方法,就報出KeyError異常

site={'name':'python','number':1}

pop_obj=site.popitem()

>>>print(pop_obj)  

('number':1)

>>>print(site)

{'name':'python'}

clear()

清除字典中所有的項。

無返回值。

原地操作。

構造方法

copy()

返回與一個具有相同鍵值對的新字典。

淺拷貝

>>> a = {1: [1,2,3]}

>>> b = a.copy()

>>> a, b

({1: [1, 2, 3]}, {1: [1, 2, 3]})

>>> a[1].append(4)

>>> a, b

({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})

deepcopy()

>>>importcopy

>>> c = copy.deepcopy(a)

>>> a, c

({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})

>>> a[1].append(5)

>>> a, c

({1: [1, 2, 3, 4, 5]}, {1: [1, 2, 3, 4]})

fromkeys

(seq[, value]))

返回一個新字典,以序列seq中元素做字典的鍵,value為字典所有鍵對應的初始值。(預設為None)

注意:建立的是新字典,呼叫該方法的字典是不變的

引數:

seq -- 字典鍵值列表。

value -- 可選引數, 設定鍵序列(seq)的值。

>>>seq =('name','age','sex')

>>>dict = dict.fromkeys(seq)

>>>print (str(dict))

{'age':None,'name':None,'sex':None}

>>>dict = dict.fromkeys(seq, 10)

>>>print (str(dict))

{'age':10,'name':10,'sex':10}

查詢與遍歷方法

get

(key,default=None)

返回指定鍵的值,如果值不在字典中返回預設值。

引數

key -- 字典中要查詢的鍵。

default -- 如果指定鍵的值不存在時,返回該預設值值。返回值返回指定鍵的值,如果值不在字典中返回預設值None。

items()

以列表(Python2.x/迭代器物件(Python3.x)返回可遍歷的(, ) 元組陣列

注意:返回時並沒有遵循特定次序

>>>dict ={'Name':'Runoob','Age':7}

>>>dict.items()

dict_items([('Age',7),('Name','Runoob')])

keys()

以列表(Python2.x/迭代器物件(Python3.x)的形式返回一個字典所有的鍵。

values()

以列表(Python2.x/迭代器物件(Python3.x)的形式返回一個字典所有的值。

相關推薦

Python學習筆記對映Mapping

• 通過名字來引用值得資料結構稱為對映字典(Dict)•   字典是鍵值對(key-value pair)的無序可變集合。(1)字典的操作①字典的建立• 字典中的每個元素包含兩部分:鍵和值。• 鍵和值用冒號分隔,元素間用逗號分隔,所有元素放在一對大括號中。d = {key1

Python學習筆記序列Sequence

3.1序列簡介•   資料結構是通過某種方式組織在一起的元素的集合。•   容器(Container)是一種Python的資料結構,基本上是包含其他物件的任意物件。序列和對映(如字典)是兩類主要的容器。集合(Set)也是容器型別。•   序列是最基本的資料結構,是通過對資料元

C++學習筆記C++中的程式結構輸入輸出以及語句選擇迴圈結構

1.C++程式結構 c++的每個程式單元由三部分組成: (1)預處理指令:#include 和#define (2)全域性宣告:在函式外部對資料型別、函式以及變數的宣告。它的有效範圍是從宣告開始到本程式單位結束。 (3)函式:包含函式首部和函式體,函式體中包含宣告語句和執行語句。

python學習筆記列表元組和字典的迭代

在python中,列表和元組的迭代是通過for....in....來完成的; >>> a=[1,2,3,4,5,6,7] >>> for index in a: ... print(index) ... 1 2 3 4 5

C++學習筆記虛基類

上一期由於寫累了,偷了點懶,就沒把注意點放完,這次繼續。 (3)若同一層次中同時包含虛基類和非虛基類,應該先呼叫虛基類,再呼叫非虛基類。(同一層中:同一級的繼承中) (4)對於多個虛基類,建構函式執行順序任然是先左後右,先上後下。 (5)對於非虛基類,建構函式的執行順序也是先左後右,先上後下

C++學習筆記虛基類

1.為什麼要引入虛基類? 在類的繼承中,如果我們遇到這種情況: “B和C同時繼承A,而B和C都被D繼承” 在此時,假如A中有一個函式fun()當然同時被B和C繼承,而D按理說繼承了B和C,同時也應該能呼叫fun()函式。這一呼叫就有問題了,到底是要呼叫B中的fun()函式還是呼叫C中的f

Python學習筆記-冒泡排序插入排序二分法查找

判斷 tail fontsize watermark encoding middle 循環 itl 要求 原文出處:https://blog.csdn.net/yort2016/article/details/68065728 冒泡排序 主要是拿一個數與列表中所有的數進行比

python學習筆記33:生成器迭代器高階函式

生成器 生成器(generator)相比列表推導式,只佔用很小的空間,因為它是一邊迴圈一邊推算,通過next()呼叫下一元素,並在結束時丟擲StopIteration異常,在語法上只要把[]換成()即可

Python學習筆記-APP圖標顯示未讀消息數目

運行 讀取 lin 簡單實現 ets fcm 筆記 python語言 lte 以小米手機系統為例,當安裝的某個APP有未讀消息時,就會在該APP圖標的右上角顯示未讀消息的數目。本文主要解說怎樣用Python語言實現圖標顯示未讀消息的數目。首先,還是要用到Python中P

python學習筆記6.抽象

位置參數 name 默認參數 [] 順序 fun append 聲明 value 【python學習筆記】6.抽象 創建函數: 使用def語句定義函數,不用聲明參數類型,和返回值類型 def function_name(param1, param2):

Python學習筆記Coursera之PY4E學習筆記——File

color 學習筆記 函數 read mod rom stephen 內容 filename 1、打開文件 使用handle=open(filename,mode)打開文件。這一函數將會返回一個handle(應該翻譯為“柄”吧)用來操控文件,參數filename是一個字符串

Python學習筆記使用Python計算皮爾遜相關系數

自己 pre 求和 相關 學習筆記 python學習 tip urn pow 源代碼不記得是哪裏獲取的了,侵刪。此處博客僅作為自己筆記學習。 def multipl(a,b): sumofab=0.0 for i in range(len(a)):

Python學習筆記Coursera課程《Using Databases with Python》 密歇根大學 Charles Severance——Week1 Object Oriented Python課堂筆記

multi rac python3 什麽什麽 req cmd ket ascii碼 charles Coursera課程《Using Databases with Python》 密歇根大學 Charles Severance Week1 Object Oriented P

Python學習筆記有關包的基本知識

兩種 學習 eee 我們 模塊 組成 learn 目錄 welcome python的包(package)是一個有層次的文件目錄結構。它定義了一個由模塊和子包組成的Python應用程序執行環境。 AAA/ __init__.py bbb.py CCC

Python學習筆記Coursera課程《Using Python to Access Web Data》 密歇根大學 Charles Severance——Week6 JSON and the REST Architecture課堂筆記

學習 except for num string net none input 網上 Coursera課程《Using Python to Access Web Data》 密歇根大學 Week6 JSON and the REST Architecture 13.5 Ja

Python學習筆記調整matplotlib的圖例legend的位置

有時預設的圖例位置不符合我們的需要,那麼我們可以使用下面的程式碼對legend位置進行調整。 plt.legend(loc='String or Number', bbox_to_anchor=(num1, num2)) 其中,第一個引數loc,設定它可以遵循以下的表格 Stri

python學習筆記切片方法

1、切片說明和簡單用法 python提供了一個切片功能,用這種方法可以很簡單的獲取列表或者元組等的某幾個元素,切片返回的結果的型別和被切片的是保持一致的;基本用法如下: >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Ja

python學習筆記set集合

1、集合說明 集合(set)是一個無序不重複元素的集。基本功能包括關係測試和消除重複元素。集合物件還支援 union(聯合),intersection(交),difference(差)和 sysmmetric difference(對稱差集)等數學運算。 2、建立一個集合 大括號

python學習筆記python字典(dict)

1、字典dict的建立 Python內建了字典:dict的支援,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)儲存,具有極快的查詢速度。注意字典內各個部分是沒有順序的區別的; 其java的map是一樣的,屬於key:value模式,一個簡單的

Python學習筆記python元組

python的元組(tuple)和列表(list)類似,是一個有序的列表,區別在於tuple是不能修改的,其初始化方式如下: >>> classmates = ('Michael', 'Bob', 'Tracy') 現在,classmates這個tuple不能變了