python學習之【第六篇】:Python中的字典及其所具有的方法

來源:互聯網
上載者:User

標籤:gre   索引值對   字串   雜湊   必須   efault   分割   因此   形式   

1.前言

字典是python中唯一的映射類型,採用索引值對(key-value)的形式儲存資料。python對key進行雜湊函數運算,根據計算的結果決定value的儲存地址,因此,字典的key必須是可雜湊的。可雜湊表示key必須是不可變類型,如:數字、字串、元組。

字典的鍵必須是唯一的,但值則不必。值可以取任何資料類型,但鍵必須是不可變的,如字串,數字或元組。

列表是有序的對象結合,字典是無序的對象集合。兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過位移存取。

2.定義字典

字典的每個索引值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括弧({})中

dic = { 'name' : 'nanliangrexue','age':18}print(dic)#輸出{'name': 'nanliangrexue', 'age': 18}
3.字典的增刪改查增

給原有的字典增加新的索引值對

dic = { 'name' : 'nanliangrexue','age':18}dic['gender'] = 'male'print(dic)#輸出{'name': 'nanliangrexue', 'age': 18, 'gender': 'male'}
  • del:刪除字典中的某個索引值對
dic = { 'name' : 'nanliangrexue','age':18}del dic['age']print(dic)#輸出{'name': 'nanliangrexue'}
  • pop():刪除字典中的某個索引值對,並返回被刪除的索引值對
dic = { 'name' : 'nanliangrexue','age':18}print(dic.pop('age'))print(dic)#輸出18{'name': 'nanliangrexue'}
  • popitem():隨機刪除字典中的一對鍵和值並以元組形式返回被刪除的索引值對
dic = { 'name' : 'nanliangrexue','age':18}print(dic.popitem())print(dic)#輸出('age', 18){'name': 'nanliangrexue'}
  • 刪除整個字典
dic = { 'name' : 'nanliangrexue','age':18}del dicprint(dic)#輸出報錯,因為字典已經被刪除Traceback (most recent call last):  File "<stdin>", line 1, in <module>NameError: name 'dic' is not defined
  • clear():清空字典
dic = { 'name' : 'nanliangrexue','age':18}dic.clear()print(dic)#輸出{}

要修改字典中已有鍵/值對,只需給要修改的索引值對的索引值重新賦值即可

dic = { 'name' : 'nanliangrexue','age':18}dic['age'] = 28print(dic)#輸出{'name': 'nanliangrexue', 'age': 28}
  • 按索引值key尋找,如果尋找不到會報錯
dic = { 'name' : 'nanliangrexue','age':18}print(dic['name'])print(dic['age'])print(dic['gender'])#輸出'nanliangrexue'18Traceback (most recent call last):  File "<stdin>", line 1, in <module>KeyError: 'gender'
  • get尋找,如果尋找不到會返回None,不會報錯
dic = { 'name' : 'nanliangrexue','age':18}print(dic.get('name'))print(dic.get('age'))print(dic.get('gender'))#輸出'nanliangrexue'18None
4.字典的方法
  • dict.fromkeys(鍵,值)
    建立一個新字典,鍵必須是可迭代的資料類型(列表,元祖,字串,集合,字典),值就是每個索引值對中預設的值
dict1 = dict.fromkeys([1,2,3],'china')dict2 = dict.fromkeys('name','china')print(dict1)print(dict2)#輸出{1: 'china', 2: 'china', 3: 'china'}{'n': 'china', 'a': 'china', 'm': 'china', 'e': 'china'}
  • dict.get(key, default=None)
    返回指定鍵的值,如果值不在字典中返回default值
dic = { 'name' : 'nanliangrexue','age':18}print(dic.get('name'))print(dic.get('gender'))print(dic.get('gender','您所尋找的索引值不存在!'))#輸出'nanliangrexue'None'您所尋找的索引值不存在!'
  • dict.items()
    以列表形式返回可遍曆的(鍵, 值) 元組數組
dic = { 'name' : 'nanliangrexue','age':18}print(dict1.items())#輸出dict_items([(1, 'china'), (2, 'china'), (3, 'china')])
  • dict.keys()
    以列表形式返回字典中所有的鍵
dic = { 'name' : 'nanliangrexue','age':18}print(dict1.keys())#輸出dict_keys([1, 2, 3])
  • dict.setdefault(key, default=None)
    和get()類似,也是尋找指定鍵的值, 但如果尋找的鍵不存在於字典中,將會添加鍵並將值設為default
dic = { 'name' : 'nanliangrexue','age':18}print(dic.setdefault('name'))print(dic.setdefault('gender','male'))print(dic)#輸出'nanliangrexue''male'{'name': 'nanliangrexue', 'age': 18, 'gender': 'male'}
  • dict.update(dict2)
    把字典dict2的索引值對增加到dict1裡,即就是把dict1和dict2合并成一個字典
dic1 = { 'name' : 'nanliangrexue','age':18}dic2 = { 'gender' : 'male'}dic1.update(dic2)print(dic1)#輸出{'name': 'nanliangrexue', 'age': 18, 'gender': 'male'}
  • dict.values()
    以列表形式返回字典中的所有值
dic = { 'name' : 'nanliangrexue','age':18}print(dic.values())#輸出dict_values(['nanliangrexue', 18])
5.字典的遍曆
  • 遍曆字典的key
dic = { 'name' : 'nanliangrexue','age':18}for key in dic.keys():    print(key)#輸出'name''age'
  • 遍曆字典中的value
dic = { 'name' : 'nanliangrexue','age':18}for value in dic.values():    print(value)#輸出'nanliangrexue'18
  • 同時遍曆字典中的key和value,以元組形式返回
dic = { 'name' : 'nanliangrexue','age':18}for item in dic.items():    print(item)#輸出('name', 'nanliangrexue')('age', 18)

python學習之【第六篇】:Python中的字典及其所具有的方法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.