python基礎day5

字典的初識:

  • why:列表能夠儲存大量的數據,但數據間的關聯性不強。列表的查詢速度比較慢。
  • 數據類型的分類(可變與不可變):
    • 可變(不可哈希)的數據類型:list dict set(集合是無序的,不重複的數據集合,它裏面的元素是可哈希的(不可變類型),可是集合自己是不可哈希(因此集合作不了字典的鍵))
    • 不可變的數據類型(可哈希): str bool int tuple(該對象自己不可變),(作不可變類型作任何操做,方法都不會改變原對象)
  • 字典:{}括起來,以鍵值對形式儲存的容器型數據類型。
    • 鍵必須是不可變的數據類型,最經常使用的是str int,鍵是不能改變且沒法修改,而值能夠改變,可修改,能夠是任何對象
    • 鍵是不能重複的,而值能夠重複。
    • 字典在3.5x版本以前(包括3.5)是無序的;字典在3.6x會按照初次創建字典的順序排序的,學術上不認爲是有序的。字典3.7x之後都是有序的。
    • 優勢:查詢速度很是快。
    • 缺點:以空間換時間,內存消耗巨大

刪除集合的方法:set.discard()python

字典的建立方式:code

dic = dict((('i',1),('love',2),('you',3)))
print(dic)
>>>{'i': 1, 'love': 2, 'you': 3}
dic = dict(i=1,love=2,you=3)
print(dic)
>>>{'i': 1, 'love': 2, 'you': 3}
dic = dict({'i': 1, 'love': 2, 'you': 3})
print(dic)
>>>{'i': 1, 'love': 2, 'you': 3}

字典的增刪改查:對象

/1. 增排序

#方法一,直接增長,已有鍵則改,無鍵則增長。
dic = {'name':'山就在那兒'}
dic['age'] = '18'
print(dic)
>>>{'name': '山就在那兒', 'age': '18'}

dic['age'] = '20'
print(dic)
>>>{'name': '山就在那兒', 'age': '20', 'sex': '男'}

#方法二,setdefault,有則不變,無則增長
dic.setdefault('able')
print(dic)
>>>{'name': '山就在那兒','age':'20','able':None}


dic.setdefault('hobby':python)
print(dic)
>>>{'name': '山就在那兒', 'age': '20', 'able':None,'hobby':python}

dic.setdefault('age':18)
print(dic)
>>>{'name': '山就在那兒', 'age': '20', 'able':None,'hobby':python}

/2 . 刪:索引

#方法一,pop(),按照鍵刪除,有返回值,返回的爲字典的值,若是沒有要刪除的鍵,則會報錯,但能夠設置第二個兩個參數,不管字典中是否有此鍵,都不會報錯,如有此鍵則返回值爲此鍵的值,若無此鍵則,返回值爲第二個參數。
dic = {'name': '山就在那兒', 'age': '18'}
value = dic.pop('age')
print(dic)
>>>{'name': '山就在那兒'}
print(value)
>>>18
a = dic.pop('hobby')
print(a)
>>>KeyError: 'hobby'
a = dic.pop('hobby','沒有此鍵值對')
print(a)
>>>沒有此鍵值對
#方法二,del,若無鍵會報錯,不推薦使用。
del dic['age']
#方法三,clear 清空
dic.claer()
print(dic)
>>>{}

/3. 改ip

dic['name'] = 18

添加多個元素的方法:dit.update() #見第六章內存

/4. 查:get

dic = {'name':'山就在那兒','hobby_list':['book','python']}
print(dic['hobby_list'])  #若沒有此鍵則會報錯,不建議用
>>>['book','python']
l1 = dic.get('hobby_list')   #若沒有鍵則會返回None,能夠定義第二個參數,第二個參數即爲返回值
print(l1)
>>>['book','python']

#keys() 
print(dic.keys())   #會返回一個dict_keys類型,包含字典中全部的鍵,和列表類似,但不能索引,可轉化成列表:list(),可遍歷
>>>dict_keys(['name', 'hobby_list'])

#values()
print(dic.values())   #會返回一個dict_values類型,包含字典中全部的值,和列表類似,但不能索引,可轉化成列表:list(),可遍歷
>>>dict_values(['山就在那兒', ['book', 'python']])

#items()
print(dic.items())
>>>dict_items([('name', '山就在那兒'), ('hobby_list', ['book', 'python'])])
for k,v in dic.items():     #元祖的拆包  for i in dic.items()  print(i)   打印的結果數據爲元祖
    print(k,v)
>>>name 山就在那兒
hobby_list ['book', 'python']

/5. 字典的推導式的方式略有不一樣,主要是由於建立字典必須知足鍵-值的兩個條件才能達成it

dit = {i:i+1 for i in range(4)}class

dit = {i:j for i,j in zip(range(4),’abcd’)}

/6. 字典的嵌套:

相關文章
相關標籤/搜索