python學習筆記:字典的使用樣本詳解

來源:互聯網
上載者:User
經典字典使用函數
dict:通過其他映射(比如其他字典)或者(鍵,值)這樣的序列對建立字典。當然dict成為函數不是十分確切,它本質是一種類型。如同list。

代碼如下:


items=[('name','zhang'),('age',42)]
d=dict(items)
d['name']

len(d):返回項的數量
d[k]:返回鍵k上面的值。
d[k]=v:將k對應的值設定為k。
del d[k]:刪除字典中的這一項。
k in d:檢查d中是否含有鍵為k的項。註:只能尋找鍵,不能尋找值。
簡單的電話本樣本:

代碼如下:


# A simple database
# A dictionary with person names as keys. Each person is represented as
# another dictionary with the keys 'phone' and 'addr' referring to their phone
# number and address, respectively.
people = {
'Alice': {
'phone': '2341',
'addr': 'Foo drive 23'
},
'Beth': {
'phone': '9102',
'addr': 'Bar street 42'
},
'Cecil': {
'phone': '3158',
'addr': 'Baz avenue 90'
}
}
# Descriptive labels for the phone number and address. These will be used
# when printing the output.
labels = {
'phone': 'phone number',
'addr': 'address'
}
name = raw_input('Name: ')
# Are we looking for a phone number or an address?
request = raw_input('Phone number (p) or address (a)? ')
# Use the correct key:
if request == 'p': key = 'phone'
if request == 'a': key = 'addr'
# Only try to print information if the name is a valid key in
# our dictionary:
if name in people: print "%s's %s is %s." % \
(name, labels[key], people[name][key])

字典方法
clear:清除字典中的所有項。

代碼如下:


x.clear()

copy:淺複製字典。

代碼如下:


y=x.copy()

deepcopy:同樣是複製,來看看和copy的區別。

代碼如下:


from copy import deepcopy
d={}
d['names']=['as','sa']
c=d.copy()
dc=deepcopy(d)
d['names'].append('ad')


fromkeys:給指定的鍵建立新的字典,每個鍵預設對應的值為none.

代碼如下:


{}.fromkeys(['name','age'])


get:更為寬鬆的訪問字典項的方法。

代碼如下:


d.get('name')


代碼如下:


# A simple database using get()
# Insert database (people) from Listing 4-1 here.
labels = {
'phone': 'phone number',
'addr': 'address'
}
name = raw_input('Name: ')
# Are we looking for a phone number or an address?
request = raw_input('Phone number (p) or address (a)? ')
# Use the correct key:
key = request # In case the request is neither 'p' nor 'a'
if request == 'p': key = 'phone'
if request == 'a': key = 'addr'
# Use get to provide default values:
person = people.get(name, {})
label = labels.get(key, key)
result = person.get(key, 'not available')
print "%s's %s is %s." % (name, label, result)

has_key:檢查字典中是否含有給定的鍵。d.haos_key()。值返回True ,False。

items:將所有字典項目一列表方式返回。

iteritems:方法大致相同,但是會返回一個迭代器而不是列表。

keys:將字典中的鍵以列表的方式返回。(注意區分和items的區別)

iterkeys:返回針對鍵的迭代器。

pop:獲得對應給定鍵的值,然後將鍵-值對刪除。

popitem:彈出一個隨機的項,

setdefault:既能獲得與給定鍵相關的值,又能在字典中不含有該鍵的情況下設定相應的索引值。

update:用一個字典更新另一個字典。

代碼如下:


d={'1':'d','2':'s','3':'a'}
x={'1','jk'}
d.update(x)

values:以列表的形式返回字典中的值。

itervalues:傳回值得迭代器。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.