真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python字典映射函數(shù) python中如何用字典生成映射列表

Python其實(shí)很簡(jiǎn)單 第十章 字典與集合

前面介紹的列表和元組都是有序序列,而字典與集合屬于無(wú)序序列,也就是說(shuō),不能通過(guò)索引來(lái)操作元素。

創(chuàng)新互聯(lián)建站成都網(wǎng)站建設(shè)按需設(shè)計(jì)網(wǎng)站,是成都網(wǎng)站設(shè)計(jì)公司,為酒樓設(shè)計(jì)提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計(jì)服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計(jì)、前端HTML5制作、后臺(tái)程序開(kāi)發(fā)等。成都網(wǎng)站營(yíng)銷(xiāo)推廣熱線:18982081108

10.1 字典

語(yǔ)法格式:

dictionary= {key1 : value1, key2 : value2, key3 : value3 ,...., key n : value n }

其中,dictionary是字典名稱(chēng),key表示元素的鍵,value表示元素的值,鍵和值必須是成對(duì)的。

如:

dict1 = { 'abc': 123, 98.6: 37 }

dict1

{'abc': 123, 98.6: 37}

可以看出,鍵可以是字符串、數(shù)字或者元組,但必須是唯一的;而值可以是任何數(shù)據(jù)類(lèi)型,也沒(méi)有要求是唯一的。

1、創(chuàng)建字典的方法

方法一:同時(shí)給定鍵和值,即“關(guān)鍵字參數(shù)”形式。

dictionary=dict(key1=value1,key2=value2,.....,key n=value n)

注意:這里的key 必須符合Python標(biāo)識(shí)符的命名規(guī)則。

例:

先使用“{}”創(chuàng)建字典:

dict1={1:'一',2:'二',3:'三',4:'四',5:'五'}

dict1

{1: '一', 2: '二', 3: '三', 4: '四', 5: '五'}

再通過(guò)“關(guān)鍵字參數(shù)”形式創(chuàng)建:

dict1=dict(1='一',2='二',3='三',4='四',5='五')

SyntaxError: expression cannot contain assignment, perhaps you meant "=="?

創(chuàng)建不成功,原因在于key 不符合Python標(biāo)識(shí)符的命名規(guī)則。前面已經(jīng)介紹過(guò),標(biāo)識(shí)符不能用數(shù)字表示或者用數(shù)字打頭。

現(xiàn)在對(duì)鍵如下修改:

dict1=dict(n1='一',n2='二',n3='三',n4='四',n5='五') #在數(shù)字前加了一個(gè)字符”n”

dict1

{'n1': '一', 'n2': '二', 'n3': '三', 'n4': '四', 'n5': '五'}

方法二 :使用已經(jīng)存在的元組和列表通過(guò)映射函數(shù)創(chuàng)建字典。

格式:dictionary=dict(zip(tuplekey,listvalue))

例:

tuplekey=('n1','n2','n3','n4','n5') #鍵的序列采用元組

listvalue=['一','二','三','四','五'] #值的序列采用列表

dict1=dict(zip(tuplekey,listvalue))

dict1

{'n1': '一', 'n2': '二', 'n3': '三', 'n4': '四', 'n5': '五'}

注意:tuple(listname)函數(shù)可以將列表轉(zhuǎn)換為元組,list(tuplename)函數(shù)可以將元組轉(zhuǎn)換為列表。

2、通過(guò)鍵訪問(wèn)字典

直接獲取鍵的相應(yīng)元素的值

dict1['n2']

'二'

利用get()方法

dict1.get('n2')

'二'

get()方法也可以帶參數(shù),當(dāng)要訪問(wèn)的鍵不存在時(shí)返回一個(gè)字符串。如:

dict1.get('n0','can't find!') #當(dāng)要查找的鍵不存在,返回'can't find!'

"can't find!"

3、遍歷字典

使用字典對(duì)象的items()方法可以獲取字典的“鍵.值對(duì)”列表。

for item in dict1.items():

print(item)

('n1', '一')

('n2', '二')

('n3', '三')

('n4', '四')

('n5', '五')

也可以獲取具體的每個(gè)元素的鍵和值,如:

for key,value in dict1.items():

print(key,'對(duì)應(yīng)的是',value)

n1 對(duì)應(yīng)的是 一

n2 對(duì)應(yīng)的是 二

n3 對(duì)應(yīng)的是 三

n4 對(duì)應(yīng)的是 四

n5 對(duì)應(yīng)的是 五

4、添加、修改和刪除字典元素

使用下面的語(yǔ)句,若指定的鍵存在,就可以修改該元素的值;若指定的鍵不存在,則添加該元素。如:

dict1['n6']='六' # 鍵’n6’不存在,故添加該元素

dict1

{'n1': '一', 'n2': '二', 'n3': '三', 'n4': '四', 'n5': '五', 'n6': '六'}

dict1['n4']='肆' # 鍵’n4’存在,故修改該元素

dict1

{'n1': '一', 'n2': '二', 'n3': '三', 'n4': '肆', 'n5': '五', 'n6': '六'}

5、利用推導(dǎo)式建立字典

import random

dict1={i:random.randint(1,100) for i in range(5)}

# 生成元素的鍵為0到5整數(shù),值為1到100之間的隨機(jī)數(shù)

print(dict1)

運(yùn)行結(jié)果:{0: 28, 1: 59, 2: 79, 3: 30, 4: 88}

10.2 集合

集合是數(shù)學(xué)中一個(gè)很重要的概念,集合具有確定性、互異性、無(wú)序性三個(gè)基本屬性。在Python中,集合同樣具有這三個(gè)基本屬性,其中,確定性是指對(duì)象要么是集合的元素,要么不是集合的元素;互異性是指集合中的元素不能重復(fù);無(wú)序性是指集合中的元素不分先后次序,可以隨意更換位置。

1、集合的創(chuàng)建

直接使用“{}”創(chuàng)建

set1={'春','夏','秋','冬'}

set1

{'秋', '春', '冬', '夏'}

set2={3,2,1,4,5}

set2

{1, 2, 3, 4, 5}

利用已有的列表、元組創(chuàng)建集合

list1=['東','南','西','北']

set3=set(list1)

set3

{'南', '東', '北', '西'}

利用已有的集合建立一個(gè)“副本”

set3

{'南', '東', '北', '西'} #set3和set4的值一樣

set4=set3

set4

{'南', '東', '北', '西'}

set4.add('中') #給set4添加元素

set4

{'西', '中', '東', '南', '北'} # 這個(gè)好理解

set3

{'西', '中', '東', '南', '北'} # 意想不到吧?Set3為什么會(huì)發(fā)生變化?

再看看簡(jiǎn)單變量的情況:

a=2

b=a #是不是與前面set4=set3相似

b+=1

b

3

a

2 #但a的值并沒(méi)有發(fā)生改變

從上面集合set3、set4和簡(jiǎn)單變量a、b的值的變化情況對(duì)比,不難發(fā)現(xiàn)set3和set4是指向同一地址的對(duì)象,而變量a和變量b指向了不同地址,語(yǔ)句b=a是將a的值傳遞個(gè)b,并不是將a的地址傳遞給b。列表、元組、字典都和集合一樣具有這樣的性質(zhì)。

所以,將set4稱(chēng)為set3的“副本”更為恰當(dāng)。

2、添加和刪除元素

set3

{'南', '東', '北', '西'}

set3.add('中') # 添加元素

set3

{'西', '中', '東', '南', '北'} # 集合內(nèi)的元素是無(wú)序的,不要糾結(jié)次序的變化

set3.remove('中') # 刪除元素

set3

{'西', '東', '南', '北'}

3、集合運(yùn)算

集合運(yùn)算包括交()、并(|)、差(-),和數(shù)學(xué)中的集合運(yùn)算是一致的。

set3={'南', '東', '北', '西'}

set4={'西', '中', '東', '南', '北'}

set3 set4 #取set3和set4的交集

{'西', '南', '北', '東'}

set3 | set4 #取set3和set4的并集

{'中', '南', '北', '西', '東'}

set3 - set4 #取set3與set4的差,即set3比set4多出來(lái)的元素

set()

set4 -set3 #取set4與set3的差,即set4比set3多出來(lái)的元素

{'中'}

python 字典為什么這么快

因?yàn)樽值涫峭ㄟ^(guò)鍵來(lái)索引的,關(guān)聯(lián)到相對(duì)的值,理論上他的查詢(xún)復(fù)雜度是O(1)。

哈希表(也叫散列表),根據(jù)關(guān)鍵值對(duì)(Key-value)而直接進(jìn)行訪問(wèn)的數(shù)據(jù)結(jié)構(gòu)。它通過(guò)把key和value映射到表中一個(gè)位置來(lái)訪問(wèn)記錄,這種查詢(xún)速度非常快,更新也快。而這個(gè)映射函數(shù)叫做哈希函數(shù),存放值的數(shù)組叫做哈希表。 哈希函數(shù)的實(shí)現(xiàn)方式?jīng)Q定了哈希表的搜索效率。

Python初學(xué)(十九)

“鍵值對(duì)”是組織數(shù)據(jù)的一種重要方式,廣泛應(yīng)用在Web系統(tǒng)中。鍵值對(duì)的基本思想是將“值”信息關(guān)聯(lián)一個(gè)“鍵”信息,進(jìn)而通過(guò)鍵信息查找對(duì)應(yīng)值信息,這個(gè)過(guò)程叫映射。Python語(yǔ)言中通過(guò)字典類(lèi)型實(shí)現(xiàn)映射。

Python語(yǔ)言中的字典使用大括號(hào){}建立,每個(gè)元素是一個(gè)鍵值對(duì),使用方式如下:

??? {鍵1:值1, 鍵2:值2, ... , 鍵n:值n}

其中,鍵和值通過(guò)冒號(hào)連接,不同鍵值對(duì)通過(guò)逗號(hào)隔開(kāi)。字典類(lèi)型也具有和集合類(lèi)似的性質(zhì),即鍵值對(duì)之間沒(méi)有順序且不能重復(fù)。?

列表類(lèi)型采用元素順序的位置進(jìn)行索引。由于字典元素“鍵值對(duì)”中鍵是值的索引,因此,可以直接利用鍵值對(duì)關(guān)系索引元素。

字典中鍵值對(duì)的索引模式如下,采用中括號(hào)格式:

??? 值 = 字典變量[鍵]

print(d[‘201801’])? ??

輸出的也就是: 小明

使用大括號(hào)可以創(chuàng)建字典。通過(guò)索引和賦值配合,可以向字典中增加元素。

字典是存儲(chǔ)可變數(shù)量鍵值對(duì)的數(shù)據(jù)結(jié)構(gòu),鍵和值可以是任意數(shù)據(jù)類(lèi)型,通過(guò)鍵索引值,并可以通過(guò)鍵修改值。

字典類(lèi)型有一些通用的操作函數(shù)

dict()函數(shù)用于生成一個(gè)空字典,作用和{}一致

字典類(lèi)型存在一些操作方法,使用語(yǔ)法形式是:

字典變量.方法名稱(chēng)(方法參數(shù))

d.keys()返回字典中的所有鍵信息,返回結(jié)果是Python的一種內(nèi)部數(shù)據(jù)類(lèi)型dict_keys,專(zhuān)用于表示字典的鍵。如果希望更好的使用返回結(jié)果,可以將其轉(zhuǎn)換為列表類(lèi)型。

d.values()返回字典中的所有值信息,返回結(jié)果是Python的一種內(nèi)部數(shù)據(jù)類(lèi)型dict_values。如果希望更好的使用返回結(jié)果,也可以將其轉(zhuǎn)換為列表類(lèi)型。

d.items()返回字典中的所有鍵值對(duì)信息,返回結(jié)果是Python的一種內(nèi)部數(shù)據(jù)類(lèi)型dict_items。當(dāng)然也可以轉(zhuǎn)成列表類(lèi)型? ?即: list(d.items())

d.get(key, default)根據(jù)鍵信息查找并返回值信息,如果key存在則返回相應(yīng)值,否則返回默認(rèn)值,第二個(gè)元素default可以省略,如果省略則默認(rèn)值為空。? 例如:? 就拿上邊的數(shù)組d? 來(lái)說(shuō) d.get(‘201801’,“不存在”)? ?相當(dāng)于一個(gè)if語(yǔ)句? 如果key? 201801 存在? 就返回201801 values? 不存在就返回? ?默認(rèn)值? 不存在

d.pop(key, default)根據(jù)鍵信息查找并取出值信息,如果key存在則返回相應(yīng)值,否則返回默認(rèn)值,第二個(gè)元素default可以省略,如果省略則默認(rèn)值為空。相比d.get()方法,d.pop()在取出相應(yīng)值后,將從字典中刪除對(duì)應(yīng)的鍵值對(duì)。? 和d.get方法類(lèi)似?

d.popitem()隨機(jī)從字典中取出一個(gè)鍵值對(duì),以元組(key,value)形式返回。取出后從字典中刪除這個(gè)鍵值對(duì)。

d.clear()刪除字典中所有鍵值對(duì)。

此外,如果希望刪除字典中某一個(gè)元素,可以使用Python保留字del。? ?即: del? d[key]

字典類(lèi)型也支持保留字in,用來(lái)判斷一個(gè)鍵是否在字典中。如果在則返回True,否則返回False。

與其他組合類(lèi)型一樣,字典可以遍歷循環(huán)對(duì)其元素進(jìn)行遍歷,基本語(yǔ)法結(jié)構(gòu)如下:

for 變量名 in 字典名

語(yǔ)句塊

for循環(huán)返回的變量名是字典的索引值。如果需要獲得鍵對(duì)應(yīng)的值,可以在語(yǔ)句塊中通過(guò)get()方法獲得。

以上就是本章的所有內(nèi)容,感謝大家.

Python 學(xué)習(xí)的基礎(chǔ)(持續(xù)更新中......)

為什么Python中沒(méi)有Switch/Case語(yǔ)句

同于我用過(guò)的其它編程語(yǔ)言,Python 沒(méi)有 switch / case 語(yǔ)句。為了實(shí)現(xiàn)它,我們可以使用字典映射:

這段代碼類(lèi)似于:

Python 代碼通常比處理 case 的標(biāo)準(zhǔn)方法更為簡(jiǎn)短,也可以說(shuō)它更難理解。當(dāng)我初次使用 Python 時(shí),感覺(jué)很奇怪并且心煩意亂。而隨著時(shí)間的推移,在 switch 中使用字典的 key 來(lái)做標(biāo)識(shí)符變得越來(lái)越習(xí)以為常。

函數(shù)的字典映射

在 Python 中字典映射也可以包含函數(shù)或者 lambda 表達(dá)式:

雖然?zero?和?one?中的代碼很簡(jiǎn)單,但是很多 Python 程序使用這樣的字典映射來(lái)調(diào)度復(fù)雜的流程。

類(lèi)的調(diào)度方法

如果在一個(gè)類(lèi)中,不確定要使用哪種方法,可以用一個(gè)調(diào)度方法在運(yùn)行的時(shí)候來(lái)確定。

很靈活,對(duì)吧?

官方說(shuō)明

官方文檔的解釋說(shuō),“用if... elif... elif... else序列很容易來(lái)實(shí)現(xiàn) switch / case 語(yǔ)句”。而且可以使用函數(shù)字典映射和類(lèi)的調(diào)度方法。

Python 字典(dic)操作

具體函數(shù)有 set(),pop(),update(),items(),keys(),values(),get(),setdefault()

python 字典操作

假設(shè)字典為 dics = {0:'a', 1:'b', 'c':3}

二是使用dict本身提供的一個(gè) get 方法,在Key不存在的時(shí)候,返回None:

print dics.get('a')

print dics.get('Paul')

None

dict.get(key,default=None) 兩個(gè)選項(xiàng) 一個(gè) key 一個(gè) default= None ----default可以是任何strings(字符)

2.從字典中取值,若找到則刪除;當(dāng)鍵不存在時(shí),顯示異常key error

[方法]? dics.pop('key')

3.給字典添加一個(gè)條目。如果不存在,就指定特定的值;若存在,就算了。

[方法] dic.setdefault(key, value)

4. update

a = {'a':1,'b':2}

a.update({'c':3})

a

{'a': 1,'c': 3,'b': 2}

a.update({'c':4})

a

{'a': 1,'c': 4,'b': 2}

dict的作用是建立一組 key 和一組 value 的映射關(guān)系,dict的key是不能重復(fù)的。

有的時(shí)候,我們只想要 dict 的 key,不關(guān)心 key 對(duì)應(yīng)的 value,目的就是保證這個(gè)集合的元素不會(huì)重復(fù),這時(shí),set就派上用場(chǎng)了。

python字典的構(gòu)成形式為

python字典的構(gòu)成形式為:字典是Python語(yǔ)言中唯一的映射類(lèi)型。

映射類(lèi)型對(duì)象里哈希值(鍵,key)和悔櫻悶指向的對(duì)象(值,value)是一對(duì)多的關(guān)系,通常被認(rèn)為是可變的哈希表。

字典對(duì)象是可變的,它是一個(gè)容器類(lèi)型,能存儲(chǔ)任意個(gè)數(shù)的Python對(duì)象,其中也可包括其他容器類(lèi)型。

字典類(lèi)型與序列類(lèi)型的區(qū)別:

1、存取和訪問(wèn)數(shù)據(jù)的方式不同。

2、序列類(lèi)型使用數(shù)字類(lèi)型的鍵(從序列的開(kāi)始按數(shù)值順序索引)。

3、映射類(lèi)型可以用其他對(duì)象類(lèi)型作鍵(如:數(shù)字、字符串、元祖,一般用字符串作鍵),和序列類(lèi)型的鍵不同,映射類(lèi)型的鍵直接或間接的和存儲(chǔ)數(shù)據(jù)值相關(guān)聯(lián)。

4、映射類(lèi)型中的數(shù)據(jù)是無(wú)序排列的。這和序列類(lèi)型是不一樣的,序列類(lèi)型是以數(shù)值序排列的。

5、映射類(lèi)型用鍵直接“映射”到值。

字典是Python中最強(qiáng)大的數(shù)據(jù)類(lèi)型之一

使用字典的注意不能允許一鍵對(duì)應(yīng)多個(gè)值;鍵必須是可哈希的。

len()返回字典的長(zhǎng)度。

hash()返回對(duì)象的哈希值,可以用來(lái)判斷一個(gè)對(duì)象能否用來(lái)作為字典的鍵。

dict()工廠函數(shù),用來(lái)創(chuàng)建字典頌跡。


分享題目:python字典映射函數(shù) python中如何用字典生成映射列表
當(dāng)前地址:http://weahome.cn/article/dochggi.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部