天天看點

Python字典基本操作

希望對你有幫助,陌生人

字典的建立:

  • phonebook = {'Alice':'2341','Beth':'9102','zdf':'1821355'}
  • items = [('name','Gunmby'),('age',42)]

    d = dict(items)

  • d = dict(name='Gumby',age=43)

字典的操作

取大小:len(d)

d[k]=v :指派 or 添加值

del d[k]:删除鍵值對

k in d :檢查是否包含該鍵

把資料通過類似于JSON格式的方式存儲起來,輸入需要的資訊就能查找到你要的值;我的名字是ZDF,我要查找的是電話号碼,這樣需要查的資料的鍵已經有了,通過這個鍵就可以在字典中取到相應的資料。

people = {
    'Alice':{
        'phone':'2314',
        'addr':'Foo drive 23'
    },
    'ZDF':{
        'phone':'1821355',
        'addr':'wenshan'
    }
}

labels = {
    'phone':'phone number',
    'addr' :'address'
}

name = raw_input('Name: ')

request = raw_input('Phone number (p) or address (a)? ')

if request == 'p' : key = 'phone'
if request == 'a' : key = 'addr'

if name in people : print "%s's %s is %s." % (name,labels[key],people[name][key])
           

字典的格式化字元串

template = '''<html>
 <head><title>%(title)s</title>
</head>
<body>
<h1>%(h1)s</h1>
 <p>%(text)s</p> 
</body>
 </html>
 '''
>>> template
'<html>\n<head><title>%(title)s</title>\n</head>\n<body>\n<h1>%(h1)s</h1>\n<p>%(text)s</p>\n</body>\n</html>\n'
data = {'title':'this is dict','h1':'dict','text':'my name is zdf'}
 print template % data
           

字典方法

clear():清空字典

copy() :潛複制,字典中有清單不能完全複制,而是共同指向一個清單,這樣進行修改清單的操作實際是對同一個清單進行操作

deepcopy()深複制,字典中清單各自指向各自的清單

get(key,defalut):通路不存在的值不會報錯,會傳回預設值,第二個參數就是當通路的key值不存在時傳回第二個參數中的值

setdefault:和get有點類似,但是它還能在字典中不含給定鍵的情況下設定相應的鍵值

has_key(key):d.has_key(k) 相當于表達式 k in d 注:python3不包括這個函數

fromkeys():建立清單的另一種方法

items():将字典所有項以清單方式放回,無順序

keys():将字典中所有key值以清單形式傳回

values():傳回字典中的所有value

iteritems() :傳回的是一個鍵值疊代器(注:python3不包括這個函數)

iterkeys():傳回的是一個鍵疊代器(注:python3不包括這個函數)

itervalues():傳回的是一個疊代器(注:python3不包括這個函數)

pop(key):用來獲得對應給定的鍵值,然後從字典中删除。

popitem():随機彈出字典裡的鍵值對

update(dict)将一個字典項更新到另一個字典中,如果存在,直接複制;否則添加新的鍵值對。

fromkeys()

{}.fromkeys(['name','age'])
{'age': None, 'name': None}
 dict.fromkeys(['name','age'])
{'age': None, 'name': None}
 dict.fromkeys(['name','age'],'1')
{'age': '1', 'name': '1'}
           

update(dict)

>>> d = {}.fromkeys(['gender','age'],'1')
>>> z = {}.fromkeys(['name','age'],'1')
>>> z.update(d)
>>> z
{'gender': '1', 'name': '1', 'age': '1'}
>>> d
{'gender': '1', 'age': '1'}