Python成長之路 字典

2022-03-28 05:37:26 字數 4505 閱讀 6628

字典是python中唯一內建的對映型別。你可以將其想象成書本的目錄,章節名稱代表「key」,頁碼則代表「value」。書本的目錄本質上是也是字典。

使用列表構建包含姓名和**號碼的資料庫

names = ['

aa','

bb','

cc','

dd','

ee','ff'

]numbers = [123,456,789,'

0121

',131415,161718]

name = input("

please enter your name :")

print(numbers[names.index(name)])

使用字典構建包含姓名和**號碼的資料庫

info =

print(info[input("

please enter your name :

")])

字典由多個鍵值對組成,鍵值對也稱為「項」,字典的特性:鍵是唯一的,值不唯一

items =[('

zhangsan

',18),('

lisi

',19),('

wangwu

',20)]

item =dict(items)

print(item)

字典基本操作:len,d[key],d[k]=v,del d[k],k in d

#

計算字典鍵值對數量

test =

print

(len(test))

#d[key],獲取指定key的值

print(test['bb'

])#d[k]=v,修改指定key的value

test['

ff']=111111111

print

(test)

#del d[k] 刪除指定鍵的元素

del(test['ff'

])print

(test)

#k in d,查詢某個鍵是否在字典中存在

print('dd'

in test)

#

people=,

'lisi':,

'wanwu':

}#手機號及位址使用的描述性標籤,用於列印輸出

labels =

name =input("

your name :")

#查詢手機號還是位址

req=input('

phone number please enter \'p\';address please enter \'a\'')

if req == 'p'

: key='

phone

'elif req == 'a'

: key='

addr

'else

:

print("

sorry,your enter is wrong")

if name in people: print ("

%s 's %s is %s .

" % (name,labels[key],people[name][key]))

字典常用方法:clear,copy,fromkeys,get,items,keys,pop,popitem,setdefault,update,values 

x={}

y=xx[

'key

']='

value

'print

(x)print

(y)x.clear()

print

(y)"""

{}"""

(2) copy

#

copy 返回乙個具有相同鍵值對的新字典(淺複製)

a=b=a.copy()

#若在副本中修改值,原字典不受影響

b['a

']='

aaa'

#若在副本中增刪值,原字典會跟著改變

b['b

'].remove('4'

)print

(a)print

(b)"""

"""

#

deepcopy 深複製,原字典改變,副本不變;副本改變,原字典也不變;原字典與副本都單獨開闢了記憶體空間

from copy import

deepcopy

c=d=deepcopy(c)c["

b5555555')

print

(c)print

(d)print

(id(c))

print

(id(d))

e=deepcopy(c)e["

b666666666666")

print

(c)print

(e)print

(id(c))

print(id(e))

"""38559608

38597040

38559608

38597112

"""

#

fromkeys 使用指定的鍵建立新字典,每個鍵對應的value預設為none

print({}.fromkeys(['

zhangsan

','lisi

']))##

自己提供預設值

print({}.fromkeys(['

zhangsan

','lisi

'],'

666'

))"""

#fromkeys 使用指定的鍵建立新字典,每個鍵對應的value預設為none

print({}.fromkeys(['zhangsan','lisi']))

##自己提供預設值

print({}.fromkeys(['zhangsan','lisi'],'666'))

"""

#get   根據key,獲取value。key不存在時,返回none(可自定義預設值替換none)而不會報錯b

age =

print(age.get('ww'

))print(age.get('zl'

))print(age.get('

zl','na'

))"""

18none

na"""

#

items 以列表的方式返回字典的所有鍵值對

pp =

print

(pp.items())

"""dict_items([('zs', 12), ('ls', 15), ('ww', 18)])

"""

#

keys 以列表的形式返回字典的所有key;values 返回字典的所有values

print

(pp.keys())

print

(pp.values())

"""dict_keys(['zs', 'ls', 'ww'])

dict_values([12, 15, 18])

"""

#

pop 彈出(刪除)字典中指定key的元素

pp.pop("zs"

)print

(pp)

pp.pop("ls

")print

(pp)

""""""

#

popitem 隨機彈出字典中的某個項

qq =

qq.popitem()

print

(qq)

""""""

#

setdefault 獲取字典中某個key的value,類似於get,若key不存在,則建立指定預設值

print("

********************")

t={}

t.setdefault(

"name

","zhangsan")

print

(t)print(t.setdefault("

name

"))

#

update 將兩個字典合併,如果key相同,則更新原字典

m=n=

m.update(n)

print

(m)d=

x=d.update(x)

print

(d)"""

y=xprint

(x)print

(y)x['a

']=1

print

(x)print

(y)x={}

print

(x)print(y)

Python成長之路 urllib庫

模擬瀏覽器傳送請求的庫,python自帶 urllib模組 呼叫的方法 說明urllib.request urlopen url 請求url,並返回請求url所有的內容 urlretrieve url,path 請求url,並將url反饋的內容儲存到path路徑下 urllib.parse quot...

Python成長之路 生成器

了解生成器 我們知道迭代器有兩種 一種是呼叫方法直接放回的 一種是可迭代物件執行iter方法得到的。迭代器的有點是可以節省記憶體。如果在某些情況下,我們也需要節省記憶體,就只能是自己寫,我們自己寫的這個能實現迭代器功能的東西就叫做生成器。生成器的函式 常規函式定義,但是,使用的是yield語句而不是...

python成長之路day08

一 集合關係運算與常用操作 二 檔案操作 關係運算 friends1 friends2 1 取二者的共同好友 交集 res friends1 friends2 print res 2 取二者所有的好友有哪些 並集 res friends1 friends2 print res 3 去二者所有的好友有...