Python是一種跨平臺(tái)的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。 是一個(gè)高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言。字典是另一種可變?nèi)萜髂P?,且可存?chǔ)任意類(lèi)型對(duì)象。
在鐵東等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供做網(wǎng)站、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),成都營(yíng)銷(xiāo)網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè)公司,鐵東網(wǎng)站建設(shè)費(fèi)用合理。一、什么是字典
字典是python里的一種數(shù)據(jù)類(lèi)型,特點(diǎn)是元素的無(wú)序性,和鍵key的唯一性。字典的創(chuàng)建方法是{key:values},字典里的鍵key只能是不可變的數(shù)據(jù)類(lèi)型(整型,字符串或者是元組),值values可以是任何數(shù)據(jù)類(lèi)型。字典里的一組key:values叫做一個(gè)鍵值對(duì)item。
1、字典的實(shí)現(xiàn)原理
字典的實(shí)現(xiàn)原理和差字典是類(lèi)似的。當(dāng)我們?cè)谧值渲胁檎夷硞€(gè)字時(shí),一種辦法是從字典的第一頁(yè)開(kāi)始往后翻,
直到找到我們要查找的字為止。這種辦法就是在列表中查找元素的方法,其缺點(diǎn):字典中的字?jǐn)?shù)越多查找的效率
越低。第二種方法是先在字典的索引表里(比如部首表)查找這個(gè)字對(duì)應(yīng)的頁(yè)碼,然后直接到這個(gè)字對(duì)應(yīng)的頁(yè),
其優(yōu)點(diǎn)是:查找效率不會(huì)隨著字典中字?jǐn)?shù)的增加而降低,無(wú)論查找哪個(gè)字,查找速度非??臁?/p>
2、字典的特點(diǎn)
a) 字典中的所有元素都是一個(gè)key-value時(shí),通過(guò)指定的key總能映射到唯一確定的value。字典中不可以存在重復(fù)的,
但是可以存在重復(fù)的value。
b) 字典中的元素是無(wú)序的。順序不重要重要的是key和value的映射關(guān)系。
c) 字典中的key必須是不可變對(duì)象。存取字典中的key-value對(duì)時(shí),系統(tǒng)會(huì)調(diào)用內(nèi)置函數(shù)hash根據(jù)指定key計(jì)算出value
存儲(chǔ)位置,也就是哈希值。對(duì)于指定的key,為了保證每次計(jì)算出的哈希值都是相同的,要求key必須是不可變對(duì)象。也就是說(shuō),
只有不可變對(duì)象才存在哈希值。
d) 字典可以根據(jù)需要?jiǎng)討B(tài)地伸縮。系統(tǒng)會(huì)根據(jù)需要?jiǎng)討B(tài)分配和回收內(nèi)存,因此在使用前無(wú)須預(yù)先聲明字典的容量。
e) 字典會(huì)浪費(fèi)較大的內(nèi)存,與列表相比是用空間換取查詢(xún)時(shí)間。
二、為什么需要字典
例如:電話(huà)簿中存儲(chǔ)了姓名和電話(huà)號(hào)碼:
張三 111111111
李四 222222222
王五 333333333
趙六 444444444
# 姓名
names = ['張三','李四','王五','趙六']
# 電話(huà)號(hào)碼
numbers = ['111111111','222222222','333333333','444444444']
print(numbers[names.index('張三')]) # 111111111 for i,n in zip(names,numbers): print(i,n) #或者使用zip進(jìn)行并行遍歷 張三 111111111 李四 222222222 王五 333333333 趙六 444444444最好是能把姓名和電話(huà)號(hào)碼全部存儲(chǔ)在一個(gè)和腳phonebook的數(shù)據(jù)結(jié)構(gòu)中,就能直接獲得其對(duì)應(yīng)的電話(huà)號(hào)碼。
phonebook = {'張三':'111111111','李四':'222222222','王五':'333333333','趙六':'444444444'} print(phonebook['張三']) #111111111三、字典的創(chuàng)建
1、使用花括號(hào){}的方式
d1 = {'zhangsan':18,'lisi':19,'wangwu':20} print(d1) # {'zhangsan': 18, 'lisi': 19, 'wangwu': 20} #空字典創(chuàng)建 d1 = {} print(d1) # {}2、使用內(nèi)置函數(shù)dict()
#傳遞字典參數(shù) d2 = dict({'zhangsan':18,'lisi':19,'wangwu':20}) print(d2) # {'zhangsan': 18, 'lisi': 19, 'wangwu': 20} #傳遞帶元組的列表 d2 = dict([('zhangsan',18),('lisi',19),('wangwu',20)]) print(d2) # {'zhangsan': 18, 'lisi': 19, 'wangwu': 20} #傳遞zip迭代對(duì)象 d2 = dict(zip(['zhangsan','lisi','wangwu'],(18,19,20))) print(d2) # {'zhangsan': 18, 'lisi': 19, 'wangwu': 20}四、字典的增刪改查
1、查操作
#使用[]的方法傳遞索引 d1 = dict([('name','zhangsan'),('age',18)]) print(d1['name']) print(d1['age']) #get方法 print(d1.get('name')) # zhangsan print(d1.get('age')) # 18 print(d1.get('abc','NONE')) # get允許我們自定義返回值,如果不存在對(duì)應(yīng)值或索引時(shí)
2、增操作
3、改操作
d1['age'] = '27' d1.update(wang = 22,tianqi = 23) d1.update({'name':'zhangsan1'}) d1.update(hobby = 'read') d1.update([('tianqi',23),('zhangsan',25)]) print(d1) # {'name': 'zhangsan1', 'age': '27', 'hobby': 'read', 'wang': 22, 'li': 16, 'tianqi': 23, 'zhangsan1': 18, 'zhangsan': 25}4、刪操作
d1 = {'name': 'zhangsan1', 'age': '27', 'hobby2': 'games', 'hobby1': 'read', 'zhangsan': 25} d1.pop('name') # 刪除一個(gè)指定key d1.popitem() #隨機(jī)刪除一個(gè)key del(d1['age']) # 刪除一個(gè)指定key print(d1) # {'hobby2': 'games', 'hobby1': 'read'} d1.clear() # 清空列表 print(d1) # {}五、字典的視圖
1、調(diào)用keys,values,iteams方法打印字典視圖
print(d1.keys(),type(d1.keys())) # dict_keys(['name', 'age', 'hobby2', 'hobby1', 'zhangsan']) <class 'dict_keys'> 打印字典的key print(d1.values(),type(d1.values())) # dict_values(['zhangsan1', '27', 'games', 'read', 25]) <class 'dict_values'> 打印字典的values print(d1.items(),type(d1.items())) # dict_items([('name', 'zhangsan1'), ('age', '27'), ('hobby2', 'games'), ('hobby1', 'read'), ('zhangsan', 25)]) <class 'dict_items'> # 打印字典的key-value六、為字典設(shè)置默認(rèn)值
1、使用dict.setdefault()方法為字典設(shè)置默認(rèn)值
# 為字典設(shè)置默認(rèn)值 d1 = dict([('name','zhangsan'),('age',18),('hobby','games')]) print(d1.setdefault('name')) # zhangsan 當(dāng)key-value存在時(shí),返回對(duì)應(yīng)值 print(d1.setdefault('score',90)) # 90 # 當(dāng)key-value不存在時(shí),賦予默認(rèn)值,并添加到字典中 print(d1) # {'name': 'zhangsan', 'age': 18, 'hobby': 'games', 'score': 90}七、借助字典創(chuàng)建格式化字符串
d1 = dict([('name','zhangsan'),('age',18),('hobby','games')]) # 使用%作為占位符 print('名字是:%s,年齡是:%i,愛(ài)好是:%s' % (d1['name'],d1['age'],d1['hobby'])) print('名字是:%(name)s,年齡是:%(age)i,愛(ài)好是:%(hobby)s' % d1) # 使用{}作為占位符 print('名字是:{},年齡是:{},愛(ài)好是:{}' .format(d1['name'],d1['age'],d1['hobby'])) print('名字是:{name},年齡是:{age},愛(ài)好是:{hobby}' .format_map(d1))另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前題目:Python字典的介紹和使用-創(chuàng)新互聯(lián)
本文鏈接:http://jinyejixie.com/article40/dhdpho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、全網(wǎng)營(yíng)銷(xiāo)推廣、做網(wǎng)站、微信小程序、軟件開(kāi)發(fā)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容