字典用法補充

以前基礎篇博客中只是總結了一下字典的基本用法,這裏對字典功能進行一些補充,畢竟做爲使用頻率較高的數據類型,仍是要重點掌握的。廢話很少說,上重點:python

一、字典是python中惟一內建的映射類型。(經過名字引用值的數據結構稱爲映射)數據結構

二、字典中的鍵是惟一的函數

三、dict()內建函數,參數能夠是鍵與值的序列,能夠是關鍵字參數,也能夠是其餘的映射。若是不給dict提供參數,則會返回一個空字典(a=dict()-->a={})。ui

#經過向dict函數傳遞參數來建立字典spa

tina=dict(height=165,weight=44,hair='black')
print(tina,tina['hair'])
#{'weight': 44, 'hair': 'black', 'height': 165} black

小練習:code

#電話簿的案例:
people={
    'tina':{
        'phone':123,
        'address':'beijing'
    },
    'fei':{
        'phone':34444,
        'address':'tianjin'
    }
}
#方法一:
name = input('input your name:')
for i in people:
    if name==i:
        print('%s %s is %d;%s %s is %s'
              %(name,'phone',people[name]['phone'],name,'address',people[name]['address']))

#方法二:
lables={
    'phone':'phone number is',
    'address':'address is'
}
name=input('input your name:')
key=input('Phone number(p) or address(a):')
if key=='p':key='phone'
if key=='a':key='address'
if name in people:
    print('%s %s is %s'%(name,lables[key],people[name][key]))
else:quit

字典格式化字符串的用法:對象

table = {'Alice':457819,'Bill':929181,'Candy':826213}
print('Bill`s phone number is %(Bill)d'%table)#Bill`s phone number is 929181

 清空字典:blog

table = {'Alice':457819,'Bill':929181,'Candy':826213}
table.clear()
print(table)#{}

根據鍵建立新的字典:ip

x={}.fromkeys(['name','age'])
print(x,x.fromkeys(['age']))
執行結果:
{'name': None, 'age': None} {'age': None}

用可迭代對象爲參數,且每個迭代對象爲(k,v)對字符串

l1=[1,2,3]
l2=['tina','tom','fei']
d=dict(zip(l1,l2))
print(d)#{1: 'tina', 2: 'tom', 3: 'fei'}

 字典推導式:

d={c:ord(c) for c in 'abc'}
print(d)#{'b': 98, 'c': 99, 'a': 97}

 

小練習:(字符統計,返回字典)

d={}
s='hello haha'
for c in s:
    if c in d:
        d[c]+=1
    else:
        d[c]=1
print(d)

結果:
{'a': 2, ' ': 1, 'h': 3, 'l': 2, 'o': 1, 'e': 1}
#方法二:
d={}
s='hello haha'
for c in s:
    d[c]=d.setdefault(c,0)+1#dict自帶的setdefault方法,會在key存在時返回value,若不存在,則設爲指定值並返回這個值。
    print(d)
相關文章
相關標籤/搜索