字典

字典的创建方式:

# 方式一: 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)
 python基础-字典的增删改查 Python

可变、不可变数据类型:

  • 可变数据类型: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)
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄