字典是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 =
(len(test))
#d[key],獲取指定key的值
print(test['bb'
])#d[k]=v,修改指定key的value
test['
ff']=111111111
(test)
#del d[k] 刪除指定鍵的元素
del(test['ff'
(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
(x)print
(y)x.clear()
(y)"""
{}"""
(2) copy
#copy 返回乙個具有相同鍵值對的新字典(淺複製)
a=b=a.copy()
#若在副本中修改值,原字典不受影響
b['a
']='
aaa'
#若在副本中增刪值,原字典會跟著改變
b['b
'].remove('4'
(a)print
(b)"""
"""
#deepcopy 深複製,原字典改變,副本不變;副本改變,原字典也不變;原字典與副本都單獨開闢了記憶體空間
from copy import
deepcopy
c=d=deepcopy(c)c["
b5555555')
(c)print
(d)print
(id(c))
(id(d))
e=deepcopy(c)e["
b666666666666")
(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)而不會報錯bage =
print(age.get('ww'
))print(age.get('zl'
))print(age.get('
zl','na'
))"""
18none
na"""
#items 以列表的方式返回字典的所有鍵值對
pp =
(pp.items())
"""dict_items([('zs', 12), ('ls', 15), ('ww', 18)])
"""
#keys 以列表的形式返回字典的所有key;values 返回字典的所有values
(pp.keys())
(pp.values())
"""dict_keys(['zs', 'ls', 'ww'])
dict_values([12, 15, 18])
"""
#pop 彈出(刪除)字典中指定key的元素
pp.pop("zs"
(pp)
pp.pop("ls
(pp)
""""""
#popitem 隨機彈出字典中的某個項
qq =
qq.popitem()
(qq)
""""""
#setdefault 獲取字典中某個key的value,類似於get,若key不存在,則建立指定預設值
print("
********************")
t={}
t.setdefault(
"name
","zhangsan")
(t)print(t.setdefault("
name
"))
#update 將兩個字典合併,如果key相同,則更新原字典
m=n=
m.update(n)
(m)d=
x=d.update(x)
(d)"""
y=xprint
(x)print
(y)x['a
']=1
(x)print
(y)x={}
(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 去二者所有的好友有...