005-python-字典操作
1. 字典
dict 用{}来表示 键值对数据 {key:value} 唯一性
键 都必须是可哈希的 不可变的数据类型就可以当做字典中的键
值 没有任何限制
dic = {'name':'alex','age':9000} #字符串 print(dic) dic = {1:'a',2:'b',3:'c'} #数字 print(dic) dic = {True:'1',False:'0'} #布尔值 print(dic) dic = {(1,2,3):'abc'} #元组 print(dic) dic = {[1,2,3]:'abc'} print(dic)
2. 增删改查
dic[key] = value
dic.setdefault(key,value) 如果键在字典中存在不进行任何操作,否则就添加
可以通过key查询,没有这个key返回None
====================================================================
pop(key) 有返回值 返回的是被删除value
del dic[key]
popitem() 随机删除
clear() 清空字典
======================================================================
dic[key] = value
dic.update(字典)
=======================================================================
get(key)
dic[key]
for 循环
setdefault(key)
=======================================================================
# 增 dic['火女'] = '人头狗' # 新增 print(dic) dic.setdefault('火女','安妮') # 如果在字典中存在就不进行任何操作,不存在就进行添加 dic.setdefault('火女','火男') # 删 ret = dic.pop('易大师') #通过key删除 返回被删除的value print(ret) del dic['剑豪'] dic.clear() # {} ret = dic.popitem() #随机删除 返回值 一个元组 (key,value) print(ret) print(dic) # 改: dic['剑豪'] = '哈莎阁' # 强制修改 dic1 = {'火女':'安妮','火男':'布兰德','维恩':'暗影猎手','剑豪':'哈莎阁'} dic1.update(dic) print(dic1) # 查 for 循环 元组 键 值 键值对 for i in dic: print(i) #for 循环默认是获取字典中的键 print(dic['易大师父']) #查看1 没有这个键的时候查询会报错 print(dic.get('易大师','你傻啊,没有!')) #查看2 没有返回None 可以指定返回内容 print(dic.setdefault('易大师范湖')) #查看3 没有返回None
3.字典的其他操作:
keys 获取到所有的键存在一个高仿的列表中
values 获取到所有的值存在一个高仿的列表中
items 获取到所有的键值对已元祖的形式存在一个高仿的列表中
# 解构(解包) a,b = '12' #将后边解构打开按位置赋值给变量 支持 字符串 列表 元组 print(a) print(b) dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'} for a,b in dic.items(): print(a) print(b) dic1 = {} dics = dic1.fromkeys([1,2,3],'abc')
4. 字典的嵌套:
dic = { 'name':'汪峰', 'age':43, 'wife':{ 'name':'国际章', 'age':39, 'salary':100000 }, 'baby':[ {'name':'熊大','age':18}, {'name':'熊二','age':15}, ] } dic['baby'][0]['age'] = 19 print(dic)
作者: do康解U
出处: https://www.cnblogs.com/David-domain/>
关于作者:专注数据库、Python 开发、ROS、深度学习,请多多赐教!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(iamkuboy@163.com)咨询.