python3.6 Dict內建方法
阿新 • • 發佈:2019-02-12
d = {"a1": 11, "a2": 22, "a3": 33} print(d) # dict是不能切片的 # 並且只能通過key和value的匹配來獲取值 # 當然也不能通過下標來取值 print(d['a1']) # 11 del d['a2'] print(d) # {'a1': 11, 'a3': 33}刪除某一個元素 d['a2'] = 22 print(d) # {'a1': 11, 'a3': 33, 'a2': 22}新增元素 print("**********************") # Demo1 clear 刪除所有元素 d.clear() print(d) # {} # Demo2 copy 淺拷貝 d2 = {"a1": 11, "a2": 22, "a3": 33} d = d2.copy() print(d) # {'a1': 11, 'a2': 22, 'a3': 33} print(id(d), id(d2)) # 4301084928 4301084568 # Demo3 fromkeys 引數需要一個可迭代的物件,如果輸入一個字串那他就是迭代這個字串, # 然後將字串的每一個字元作為一個key去原dict裡匹配key,然後組成一個新的dict # 所以最好使用list作為引數 # 第二個引數是所有key所對應的valuse如果沒有,預設為None d = dict.fromkeys(['a1', 'a3'], 10) print(d) # {'a1': 10, 'a3': 10} d = dict.fromkeys(['a1', 'a2', 'a3'], [1, 2, 3]) print(d) # 錯誤用法 # {'a1': [1, 2, 3], 'a2': [1, 2, 3], 'a3': [1, 2, 3]} # Demo4 get 通過key獲取dict的值,第二個引數為預設值(如果沒找到,就自動填充預設值,預設為None) d = {"a1": 11, "a2": 22, "a3": 33} print(d.get('a2')) # 22 print(d.get('vvv', "Not Found")) # Not Found # Demo 5 items 返回所有元素,包括key和value print(d) # {'a1': 11, 'a2': 22, 'a3': 33} print(d.items()) # dict_items([('a1', 11), ('a2', 22), ('a3', 33)]) # Demo 6 keys 以list的形式返回所有key print(d) # {'a1': 11, 'a2': 22, 'a3': 33} print(d.keys()) # dict_keys(['a1', 'a2', 'a3']) # Demo 7 pop 根據指定的key刪除這一組元素,並且返回值,如果key沒找到,返回引數d所賦值的值,預設為None print(d) # {'a1': 11, 'a2': 22, 'a3': 33} print(d.pop('a1')) # 11 print(d) # {'a2': 22, 'a3': 33} print(d.pop('zzz', "Not Found")) # Not Found print(d) # {'a2': 22, 'a3': 33} # Demo 8 popitem 刪除一對資料並且以tuple的形式返回,一般是刪除最後一對 d = {"a1": 11, "a2": 22, "a3": 33} print(d.popitem()) # ('a3', 33) print(d) # {'a1': 11, 'a2': 22} # Demo 9 setdefault 兩個引數一個是key,一個valuse # 如果dict裡有這個key,則返回這個key所對應的值,其他不變 # 如果沒有,則返回引數value(預設為None),並且在dict內新增這一組元素1 d = {"a1": 11, "a2": 22, "a3": 33} print(d.setdefault("a1")) # 11 print(d) # {'a1': 11, 'a2': 22, 'a3': 33} print(d.setdefault("a9", 999)) # 999 print(d) # {'a1': 11, 'a2': 22, 'a3': 33, 'a9': 999} # Demo 10 update 把一個dict新增到另一個dict內 print(d) # {'a1': 11, 'a2': 22, 'a3': 33, 'a9': 999} d.update({11: "aa", 22: "bb", 33: "cc", 44: "dd"}) print(d) # {'a1': 11, 'a2': 22, 'a3': 33, 'a9': 999, 11: 'aa', 22: 'bb', 33: 'cc', 44: 'dd'} d = {"a1": 11, "a2": 22, "a3": 33} d.update({"a1": 111, "a2": 222, "a3": 333}) print(d) # {'a1': 111, 'a2': 222, 'a3': 333} 如果key相同則更新 # Demo 11 values 以tuple形式返回所有value(所有value會以list形式組成tuple的第一個元素) print(d) # {'a1': 111, 'a2': 222, 'a3': 333} print(d.values()) # dict_values([111, 222, 333])