Python基礎(day5)

字典

  字典是Python中唯一的映射類型,採用鍵值對(key-value)的形式存儲數據。

python對key進行哈希函數運算,根據計算的結果決定value的存儲地址,所以字典是無序存儲的,且key必須是可哈希的。可哈希表示key必須是不可變類型,如:數字、字符串、元組。

  字典是除列表以外python中最靈活的內置數據結構類型。列表是有序的對象結合,字典是無序的對象集合。兩者之間的區別在於:字典中的元素是通過鍵來存取的,而不是通過偏移存取。

 增:

dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
dic1['high'] = 175  # 沒有鍵值對,添加
dic1['age'] = 16    # 如果有鍵,則值覆蓋
print(dic1)

結果輸出:

{'age': 16, 'name': 'wuli', 'sex': 'male', 'high': 175}

setdefault()方法:默認爲None

dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
dic1.setdefault('weight') #默認爲None
print(dic1)

結果輸出:

{'age': 18, 'name': 'wuli', 'sex': 'male', 'weight': None}
有鍵值對,不做任何改變,沒有才添加。
dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
dic1.setdefault('weight', 160)  #有鍵值對,不做任何改變,沒有才添加。
print(dic1)

結果輸出:

{'age': 18, 'name': 'wuli', 'sex': 'male', 'weight': 160}

刪:pop()、popitem()、del、clear()

dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
dic1.pop('age')     # 有返回值,按鍵去刪除
print(dic1)

結果輸出:

{'name': 'wuli', 'sex': 'male'}
dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
print(dic1.pop('二哥', 'None/沒有此鍵'))  # 可設置返回值
print(dic1)

結果輸出:

None/沒有此鍵
{'age': 18, 'name': 'wuli', 'sex': 'male'}
dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
dic1.popitem()  # 隨機刪除, 有返回值,元組裏面是刪除的鍵值。
print(dic1)

結果輸出:

{'age': 18, 'name': 'wuli'}

del:

dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
del dic1['name']
print(dic1)

結果輸出:

{'age': 18, 'sex': 'male'}

dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
del dic1 # 直接將字典刪除,打印報錯,沒有定義字典
dic1.clear()  #清空字典,輸出爲{}

改:

dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
dic1['age'] = 16
print(dic1)
dic = {'name': 'wuli', 'age': 18, 'sex': 'male'}
dic2 = {'name': 'alex', 'weight': 77}
dic2.update(dic)
print(dic)
print(dic2)

結果輸出:、

{'age': 16, 'name': 'wuli', 'sex': 'male'}
{'name': 'wuli', 'age': 18, 'sex': 'male'}
{'name': 'wuli', 'weight': 77, 'age': 18, 'sex': 'male'}

查:

dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
print(dic1.keys())
print(dic1.values())
print(dic1.items())

結果輸出:

dict_keys(['age', 'name', 'sex'])
dict_values([18, 'wuli', 'male'])
dict_items([('age', 18), ('name', 'wuli'), ('sex', 'male')])

for循環1:

dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
for i in dic1:
    print(i)    # 什麼都不寫,默認打印的是鍵,與下面一樣。

結果輸出:

age
name
sex

for循環2:

dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
for i in dic1.keys():
    print(i)

結果輸出:

age
name
sex

for循環3:

dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
for i in dic1.values():
    print(i)

結果輸出:

18
wuli
male

其他操作1:

a, b = 1, 2
print(a, b)

結果輸出:

1 2

其他操作2:

a = 1
b = 2
a, b = b, a
print(a, b)
a, b = [1, 2], [2, 3]
print(a, b)
a, b = (1, 2)
print(a, b)

結果輸出:

2 1
[1, 2] [2, 3]
1 2

其他操作3:

dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
for k, v in dic1.items():
    print(k, v)

結果輸出:

age 18
name wuli
sex male
dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
v1 = dic1['name']   # 如果沒有這個值則報錯
print(v1)

結果輸出:

wuli

get():

dic1 = {'age': 18, 'name': 'wuli', 'sex': 'male'}
print(dic1.get('name1'))    #不報錯
print(dic1.get('name1', '沒有這個鍵'))    #不報錯

結果輸出:

None
沒有這個鍵

dict嵌套:

 1 dic = {
 2     'name':['alex', 'wusir', 'wuli'],
 3     'py9':{
 4         'time': '1213',
 5         'learn_money:': 19800,
 6         'addr': 'CBD',
 7     },
 8     'age': 22
 9 }
10 
11 dic['age'] = 30
12 dic['name'].append('taibai')
13 print(dic)
14 dic['name'][1] = dic['name'][1].upper()
15 print(dic)
16 
17 dic['py9']['female'] = 6
18 print(dic)

結果輸出:

1 {'name': ['alex', 'wusir', 'wuli', 'taibai'], 'py9': {'time': '1213', 'learn_money:': 19800, 'addr': 'CBD'}, 'age': 30}
2 {'name': ['alex', 'WUSIR', 'wuli', 'taibai'], 'py9': {'time': '1213', 'learn_money:': 19800, 'addr': 'CBD'}, 'age': 30}
3 {'name': ['alex', 'WUSIR', 'wuli', 'taibai'], 'py9': {'time': '1213', 'learn_money:': 19800, 'addr': 'CBD', 'female': 6}, 'age': 30}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章