python語法-字典

'''
字典是另一種可變容器模型,且可儲存任意類型對象
字典的每個鍵值 key => value 對用冒號 : 分割,每個鍵值對之間用逗號 ,分割,
整個字典包括在花括號{}中,
格式
d = {key1 : value1, key2 : value2 }
鍵必須是唯一的,但值則不必
值可以取任何數據類型,但鍵必須是不可變的,如字符串,數字或元組
'''

dict = {'Alice' : '2341', 'beth' : '9102', 'Cecil' : '3258'}
print(dict)
dict1 = {'abc' : 456}
print(dict1)
dict2 = {'abc' : 123, 98.6 : 37}
print(dict2)

#訪問字典裏的值 把相應的鍵放入熟悉的方括弧裏
dict3 = {'Alice' : 'str', 'beth' : 9102, 'Cecil' : (1,2,3,4)}
print(dict3)
print("dict3['Alice'] = ",dict3['Alice'])
print("dict3['beth'] = ",dict3['beth'])
print("dict3['Cecil'] = ",dict3['Cecil'])

#修改字典 向字典添加新內容的方法是增加新的鍵/值對,修改或刪除已有鍵/值對
dict4 = {'Alice' : 'str', 'beth' : 9102, 'Cecil' : (1,2,3,4)}
dict4['beth'] = 8
print(dict4['beth'])
dict4['School'] = "DPS school"
print(dict4['School'])
print(dict4)

#刪除字典元素 能刪除單一的元素也能清空字典,清空只需一項操作
#顯示刪除一個字典用del命令
dict5 = {'Name' : 'Zara', 'Age' : 7, 'Class' : 'First'}
# del dict5['Name']  刪除鍵是Name的條目
# dict5.clear()  清空字典所有條目
# del dict5     刪除字典
print(dict5)


''' 
字典鍵的特性
字典值可以沒有任何限制地取任何python對象,既可以是標準的對象,也可以是用戶定義的,但鍵不行
兩個重要的點需要記住
(1) 不允許同一個鍵出現多次,創建時,如果同一個鍵被賦值多次,最後一個值會被記住
(2) 鍵必須不可變,所以可以用數字,字符串,元組充當,所以用列表就不行
'''

dict6 = {'Alice' : '2341', 'beth' : '9102', 'Alice' : '3258', 'Alice' : 456564}
print(dict6)
'''
dict7 = {'Alice' : 'str', [1,2,3] : 9102, 'Cecil' : (1,2,3,4)}
print(dict7)
'''
'''
字典內置函數和方法:
包括以下內置函數
len(dict) 計算字典元素個數,即鍵的總數

str(dict) 輸出字典可打印的字符串表示

type(variable) 返回輸入的變量類型,如果變量是字典就返回字典類型

包括以下內置方法

dict.clear() 刪除字典內所有元素 {}

dict.copy() 返回一個字典的淺複製

dict.fromkeys(seq[, value]) seq--字典鍵值列表 value--可選參數,設置鍵序列(seq)的值
該函數用於創建一個新字典,以序列seq中元素做字典的鍵,value爲字典所有鍵對應的初始值
該方法返回一個列表

dict.get(key,default=None) 返回指定鍵的值,如果值不在字典中返回default值
參數:key--字典中要查找的鍵, default--如果指定鍵的值不存在時,返回默認值
返回指定鍵的值,如果不在字典中返回默認值None

dict.keys() 是列出字典所有的鍵

dict.items() 以列表返回可遍歷的(鍵,值)元組數組

dict.setdefault(key,default=None)  和get方法類似,如果鍵不存在於字典中,將會添加鍵並將值設爲默認值
key--查找的鍵值, default--鍵不存在時,設置的默認值
返回值:如果key在字典中,返回對應的值,如果不在字典中,則插入key及設置的默認值default,
並返回default,default默認值爲None

dict.update(dict2)  把字典dict2的鍵/值對更新到dict裏
dict2--添加到指定字典dict裏的字典
該方法沒有任何返回值

dict.values() 以列表返回字典中的所有值

pop() 刪除字典給定鍵key對應的值,返回值爲被刪除的值。key值必須給出,否則,返回default值
語法:dict.pop(key[,default])
key--要刪除的鍵值  default--如果沒有key,返回default值
返回被刪除的值

popitem() 隨機返回並刪除字典中的一對鍵和值(一般刪除末尾對)
如果字典已經爲空,卻調用了此方法,就報出KeyError異常
返回一個鍵值對(key,value)形式



'''
dict8 = {'user' : 'runoob', 'num' : [1,2,3]}
dict9 = dict8
dict10 = dict8.copy()
dict8['user'] = 'root'
dict8['num'].remove(1)
print(dict8)
print(dict9)
print(dict10)


seq = ('name','age','sex')
dict11 = dict.fromkeys(seq)
print(dict11)
dict12 = dict.fromkeys(seq,10)
print(dict12)

dict13 = {'name': 'zara', 'Age': 27}
print(dict13.get('Age'))
print(dict13.get('sex','never'))
print(dict13.get('sex'))
# help("keywords")

dict14 = {'name': 'zara', 'Age': 27}
print(dict14.keys())
print('name' in dict14.keys())
print('name' in dict14)
dict15 = {'name': 'zara', 'Age': 27}
print(dict15.items())
for i,j in dict15.items():
    print(i, ":\t",j)
dict16 = {'name': 'zara', 'Age': 27}
print(dict16.setdefault('name',None))
print(dict16.setdefault('sex',None))
print(dict16)

dict17 = {'name': 'zara', 'Age': 27}
dict18 = {'sex': 'man'}
dict17.update(dict18)
print(dict17)

dict19 = {'name': 'zara', 'Age': 27}
dict20 = dict19.values()
print(list(dict20))

dict21 = {'name': 'zara', 'Age': 27}
# dict22 = dict21.pop('sex',None)
dict22 = dict21.pop('name')
print(dict22)
print(dict21)

dict23 = {'name': 'zara', 'Age': 27}
dict24 = dict23.popitem()
print(dict24)
print(dict23)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章