# 字典是一个可变的数据类型 # 创建空字典 dic = {} print(type(dic)) # <class 'dict'> # 创建字典(1) 元素不限,可以是任何数据类型 zbq_infor = {"addr": "Hebei", "age": "36", "hobbit": ["play basketball", "play football"]} # 注意1 键只能是不可变的数据类型 # zbq_infor = {["adder"]:"Hebei"} TypeError: unhashable type: 'list' # print(zbq_infor) # 上述报错,因为[]是可变数据类型,不能作为键。 # 元组()是不可变的数据类型,没有报错。 zbq_infor = {("adder"): "Hebei"} print(zbq_infor) # 注意2:键需要唯一,但是有重复键时,会覆盖保留最后一次 zbq_infor = {"adder": "Hebei", "age": "36", "adder": "Beijing", "adder": "Shanghai"} # 创建字典(2),通过类 dic2 = dict() print(type(dic2)) # <class 'dict'> # dict(mapping) 映射 ("adder", "Heibei") dic3 = dict([("adder", "Heibei"), ("age", 18)]) # dict(**kwargs) 键值对 dic4 = dict(adder="Hebei", age=18) dic5 = {"adder": "Hebei", "age": "36"} # dic3,4,5 是创建字典的三种方法
# map(func, *iterables) --> map object # 需求 将list("1234")---> [1,2,3,4] 将列表中的每个元素转为int类型 li = list("1234") print(list("1234")) # ['1', '2', '3', '4'] print(list(map(int, li))) # 将li当中的每个元素传到了int()中,再返回。 相当于把map对象转化成列表 # 相当于 print(type(li[0])) # <class 'str'> # 再强转成int print(type(int(li[0]))) # <class 'int'> # 同样的操作要做4遍 map(int, li) # map 对象 # <map object at 0x0000014822DD89E8> 出现报错,这种形式是返回不了list类型的,所以还要转化成list类型 inp = input("请输入1 2 3 4,转化成:[1, 2, 3, 4]:") print(inp.split(" ")) # <class 'list'> ['1', '2', '3', '4'] split返回的是列表 map(int, inp.split(" ")) print(list(map(int, inp.split(" ")))) # 目标 {('name', 'age'): ('sim', 18)} # 参考,zip将可迭代的对象里面一一对应的元素打包进行返回。 li_k = ["name", "age"] li_v = ["sim", 18] # print(zip(li_k, li_v)) <zip object at 0x000002A001FFE348> print(dict(zip(li_k, li_v))) # {'name': 'sim', 'age': 18}
dic5 = {"adder": "Hebei", "age": "36"} # print(dic5[0]) 报错 KeyError: 0 dict是一个集合类型,集合类型没有下标的说法。 print(dic5['adder']) # Hebei dic[exit key] # print(dic5['sex']) 报错 KeyError: 'sex' 当key不存在时,报错、 # 怎么给字典添加值 取出赋值 dic5["name"] = "lucy" print(dic5) # 怎么给字典重新赋值,取出修改赋值。 # 删除字典 del pop(必须传参数) dic6 = {"adder": "Hebei", "age": "36"} print(dic6.get("adder")) # Hebei print(dic6.get("sex")) # None 没有找到键值,但是不会报错,方括号会报错 for key, value in dic5.items(): print(key, value) # adder Hebei # age 36 # name lucy print(dic5.items()) # dict_items([('adder', 'Hebei'), ('age', '36'), ('name', 'lucy')]) print(dic5.keys()) # dict_keys(['adder', 'age', 'name']) print(dic5.values()) # dict_values(['Hebei', '36', 'lucy']) # 注意 get item keys values 4个方法的使用