1. 程式人生 > >python3學習筆記七(字典)

python3學習筆記七(字典)

參照http://www.runoob.com/python3/python3-dictionary.html

  • 字典

字典是另一種可變容器模型,且可以儲存任意型別物件。

dict1 = {key1:value1,key2:value2}

注意:鍵key是唯一的,但是值不用,值可以是字串、數字或元組。

dict2 = {'a':1,'b':'12'}

dict3 = {'Name':'jack','Age':'22','Class':'first'}
print("dict3['Name']: ",dict3['Name']) #訪問字典中的值
print("dict3['Age']: ",dict3['Age'])

dict3['Age'] = 20
dict3['School'] = 'python' #修改字典
print("dict3['Age']: ",dict3['Age'] )
print("dict3['School'] ",dict3['School'])

del dict3['Name'] #刪除字典中的元素
print(dict3)
dict3.clear()
# del dict3 刪除字典
print(dict3)


字典值的特性:
不允許一個鍵出現兩次;
鍵必須不可變,可以用數字、字串或元組,但是列表不行。
  • 字典內建函式&方法

內建方法如下:

#radiansdict.clear()  刪除字典內所有元素
dict4 = {'name':'bob','age':19}
print(dict4)
dict4.clear()
print(dict4)
print(len(dict4))
#radiansdict.copy() 返回一個字典的淺複製
dict5 = {'name':'bob','age':19,'class':'two'}
dict6 = dict5.copy()
print('新複製的字典是: ',dict6)
'''
#radiansdict.fromkeys()
# 建立一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值
seq -- 字典鍵值列表。
value -- 可選引數, 設定鍵序列(seq)的值。
'''
dict5 = {'name':'bob','age':19,'class':'two'}
dict7 = dict5.fromkeys(dict5)
print('新的字典是: %s' % str(dict7))
dict8 = dict5.fromkeys(dict5,10)
print('新的字典是: %s' % str(dict8))

# radiansdict.get(key, default=None) 返回指定鍵的值,如果值不在字典中返回default值
dict5 = {'name':'bob','age':19,'class':'two'}
print('age的值是: %s' % dict5.get('age'))
print('sex的值是: %s' % dict5.get('sex','na'))
# key in dict 如果鍵在字典dict裡返回true,否則返回false
dict5 = {'name':'bob','age':19,'class':'two'}
if 'age' in dict5:
print('age鍵存在')
else :
print('age鍵不存在')
if 'sex' in dict5:
print('sex鍵存在')
else :
print('sex鍵不存在')
# not in 同理可知

# radiansdict.items() 以列表返回可遍歷的(鍵, 值) 元組陣列
print("value : %s" % dict5.items())

# radiansdict.keys() 返回一個迭代器,可以使用 list() 來轉換為列表
dict5.keys()
print(list(dict5.keys()))

'''
radiansdict.setdefault(key, default=None)
和get()類似, 但如果鍵不存在於字典中,將會新增鍵並將值設為default
key -- 查詢的鍵值。
default -- 鍵不存在時,設定的預設鍵值。

'''
print("age鍵的值是 :%s" % dict5.setdefault('age',None))
print("sex鍵的值是 : %s" % dict5.setdefault('sex',None))

print("新字典是: ", dict5)



# radiansdict.update(dict2) 把字典dict2的鍵/值對更新到dict裡
dict5 = {'name':'bob','age':19,'class':'two'}
dict7 = {'sex':'male'}
dict5.update(dict7)
print("更新字典dict5: ", dict5)

# radiansdict.values() 返回一個迭代器,可以使用 list() 來轉換為列表
print("字典所有值是: ", list(dict5.values()))

# pop(key[,default]) 刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。key值必須給出。 否則,返回default值。
dict5 = {'name':'bob','age':19,'class':'two'}
pop_obj = dict5.pop('name')
print(pop_obj)


# popitem() 隨機返回並刪除字典中的一對鍵和值(一般刪除末尾對)。
dict5 = {'name':'bob','age':19,'class':'two'}
pop_obj = dict5.popitem()
print(pop_obj)
print(dict5)