python基礎-字典的增刪改查

字典

字典的建立方式:

# 方式一:
dict1 = dict((("one", 1), ("two", 2), ("three", 3)))
print(dict1)   # {'one': 1, 'two': 2, 'three': 3}

# 方式二:
dict2 = dict(one = 1, two = 2, three = 3)
print(dict2)  # {'one': 1, 'two': 2, 'three': 3}

# 方式三:
dict3 = {"one":1, "two":2, "three":3}
print(dict3)

# 方式四:
dict4 = dict({"one":1, "two":2, "three":3})
print(dict4)

可變、不可變數據類型:

  • 可變數據類型:list,dict,set

  • 不可變數據類型:int bool str tuple

# 字典的鍵必須是不可變數據類型
dict5 = {[1,2,3]:12, 1:"lisi"}
print(dict5)   # TypeError: unhashable type: 'list'

字典的鍵必須惟一:

# 字典的鍵必須惟一  不然後邊鍵的值會把前邊同名鍵的值覆蓋掉
dict6 = {1:1, 1:2, 2:3}
print(dict6)   # {1: 2, 2: 3}

dict7 = {"name":"張三", "age":18}
dict7["sex"] = "男"   # 有則改,無則加
dict7["name"] = "李四"  # {'name': '李四', 'age': 18, 'sex': '男'}
print(dict7)        # {'name': '張三', 'age': 18, 'sex': '男'}

# 設置默認值  setdefault   有則不變,無則增長
dict7.setdefault("hobby")   # 不設置值,默認爲None
print(dict7)       # {'name': '李四', 'age': 18, 'sex': '男', 'hobby': None}

dict7.setdefault("hobby", "球類運動")   # 有則不變
print(dict7)       # {'name': '李四', 'age': 18, 'sex': '男', 'hobby': None}

# pop   根據字典的鍵刪除數據,沒有指定的鍵則報錯
dict7.pop("hobby")
print(dict7)  # {'name': '李四', 'age': 18, 'sex': '男'}

# 刪除不存在的鍵報錯
dict7.pop("hobby")
print(dict7)    # KeyError: 'hobby'

ret = dict7.pop("hobby", "沒有此鍵")
print(ret)    # 沒有此鍵

# clear  清空
dict7.clear()
print(dict7)   # {}

# del
del dict7["name"]
print(dict7)

# 刪除不存在鍵報錯
del dict7["name"]
print(dict7)   # KeyError: 'name'

改 直接給相應的鍵賦值

dict8 = {"name":"張三", "age":18}
dict8["name"] = "李四"
print(dict8)   # {'name': '李四', 'age': 18}

dict8 = {"name":"張三", "age":18}
l1 = dict8.get("name")
print(l1)   # 張三

# 想要獲取的鍵不存在,使用get不會報錯,默認返回None
l2 = dict8.get("sex")
print(l2)  # None

# 指定沒有相應鍵時的返回值
l3 =dict8.get("sex", "沒有獲取到")
print(l3)  # 沒有獲取到

# keys
keys = dict8.keys()
print(keys)   # dict_keys(['name', 'age'])
print(list(keys))  # ['name', 'age']

# 獲取字典的key
for key in dict8.keys():
    print(key)

# 獲取字典的value
for value in dict8.values():
    print(value)

for i in dict8.items():
    print(i)    # 以key,value的形式放在元組中('age', 18)

# 經過元組拆包獲取key,value
for key, value in dict8.items():
    print(key,value)
相關文章
相關標籤/搜索