1. 程式人生 > >python3.6 Dict內建方法

python3.6 Dict內建方法

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])