Python字典以及相关函数使用 我不是女神ヾ 2022-03-14 09:36 187阅读 0赞 # 不可变类型:整型,字符串,元组 # 可变类型:列表,字典 不能用作键值名 dic = { 'name': 'joe', 'age': '35', 'hobby': { 'girl_name': 'Miss_cloud', 'age': 32 }, 'handsome': True } print(dic) print(dic['hobby']) # 字典的两个特点:无序,键唯一 (覆盖掉) # 字典的创建的两种方式 a = list([1, 2, 3, 4, 5]) # 转换为一个列表 print(a) a = dict([['name', 'joe'], ]) print(a) # 增加 有就覆盖 没有就添加 # 方法一 dic1 = {'name': 'joe.smith'} dic1['age'] = 23 print(dic1) # 方法二 dic1.setdefault('age', 24) # 有就不修改 有返回值 返回值为已经存在的键值的值 print(dic1) dic1.setdefault('hobby', 'girls') # 没有就修改 添加 有返回值 返回值为刚添加的键值的值 print(dic1) # 查询 通过键值对 dic2 = {'name': 'joe.smith', 'age': 23} print(dic2['name']) print(dic2.keys()) # 获取键 转化为列表 print(list(dic2.keys())) # 获取值 转化为列表 print(list(dic2.values())) # 修改 dic1.update(dic2) # 添加 print(dic1) print(dic2) # 删除 print(dic2) del dic2['name'] # 删除 键值 也可以删除整个字典 print(dic2) dic2.clear() # 清空 print(dic2) dic2.setdefault('name', 'joe.smith') # 添加 print(dic2) flag = dic2.pop('name') # 有返回值 print(flag) # 返回删除的键的值 print(dic2) dic2.setdefault('name', 'joe.smith') # 添加 print(dic2) flag = dic2.popitem() # 随机删除某个键值对 并返回值元组形式 print('随机', flag, dic2) # 其他操作 dic3 = dic1.fromkeys(['zhangsan', 'lisi', 'wangwu'], '45') # 多个键 同时赋值 print(dic3) dic3 = dic1.fromkeys(['zhangsan', 'lisi', 'wangwu'], ['45', '60']) # 多个键 同时赋值 还是都赋值相同的值 print(dic3) # 排序 dic = {1: 'zhangsan', 2: 'lisi', 6: 'wangwu'} print('字典直接排序', sorted(dic)) # 字典排序 print('值排序', sorted(dic.values())) # 值排序 print('键排序', sorted(dic.keys())) # 键排序 直接排序和键排序输出结果一样 说明 直接排序就是根据键排序 # 遍历 print('方式1') for i in dic: print(i, dic[i]) # 方式一 print('方式2') for i, v in dic.items(): # 方式二 print(i, v) -------------------- 要点: * 不可变类型:整型,字符串,元组 * 可变类型:列表,字典。(不能用作键名) * 字典的特点:无序,键唯一。(如果有相同键,会被覆盖) * 添加键值对,直接赋值给字典,有该键则覆盖,没有则添加 * 添加键值对,dic.setdefault('age',24) 有该键则返回该键的值,没有则添加 * 查询键值对,dic\['name'\] 直接写要查询键 * 查询键值对,dic.keys() 获取所有键,dic.values()获取所有值 * 转成列表,list(dic.keys()) list(dic.values()) * 修改键值对,dic1.update(dic2) * 删除键值对,del dic\['name'\]、dic.clear()(清空)、dic.pop()(有返回值)、dic.popitem()(随机删除某键值对并返回元组) * 赋值键值对,dic.fromkeys(\['laowang','laoli'\],'45')(多个键同时赋值) * 字典排序,sorted(dic)(直接排序)、sorted(dic.keys())(键排序)、sorted(dic.values())(值排序) * 遍历字典,for i in dic:\*\*\*dic\[i\]\*\*\*、for i,v in dic.items():\*\*\*i,v\*\*\* --------------------
还没有评论,来说两句吧...