Python dict的常用方法示例代码


Posted in Python onJune 23, 2020

常用方法

浅拷贝copy

a = {"ilpy1": {"company": "aaa"},
   "ilpy2": {"company": "bbb"}
   }
new_dict = a.copy()
new_dict["ilpy1"]["company"] = "wtf"
print(new_dict)
print(a)
print(id(a))
print(id(new_dict))
print(id(new_dict["ilpy1"]["company"]))
print(id(a["ilpy1"]["company"]))

然后我们发现,执行这一步操作时new_dict["ilpy1"]["company"] = "wtf",对a也执行了修改,比较id可知new_dict["ilpy1"]["company"]))a["ilpy1"]["company"]指向了同一位置,而anew_dict指向不同位置,这就是浅拷贝的副作用

深拷贝

这并不是dict自带的方法而是来自python的一个包copy

import copy

a = {"ilpy1": {"company": "aaa"},
   "ilpy2": {"company": "bbb"}
   }


new_dict = copy.deepcopy(a)
print(id(a))
print(id(new_dict))
a['ilpy1']['company'] = "666"
print(a)
print(new_dict)

list转换dict

import copy

a = {"ilpy1": {"company": "aaa"},
   "ilpy2": {"company": "bbb"}
   }
myList = ['aaa', 'bbb']
new_dict = dict.fromkeys(myList, "2")
print(new_dict)

items

a = {"ilpy1": {"company": "aaa"},
   "ilpy2": {"company": "bbb"}
   }
for key,value in a.items():
   print(key,value)

clear

a = {"ilpy1": {"company": "aaa"},
   "ilpy2": {"company": "bbb"}
   }
# clear 清楚dict元素
# a.clear()
# print(a)

update

a = {"ilpy1": {"company": "aaa"},
   "ilpy2": {"company": "bbb"}
   }

a.update(a=1,b=2)
print(a)

传入可迭代对象也可

a = {"ilpy1": {"company": "aaa"},
   "ilpy2": {"company": "bbb"}
   }

a.update([('1','2')])
print(a)
a.update((('1','2'),))
print(a)

setdefault

Python 字典 setdefault() 函数和 get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值。所以当我们需要快速判断键值对是否存在并且加上去的时候就可以使用此方法

ps:下面看下python-dict和list常用方法

# *********-list-*********
# 创建一个list
list1 = [1, 2, '力气,', 'afd']
print(type(list1))
print(list1)
# 添加单个元素
list1.append('ffff')
print(list1)
list2 = ['ff2', 34]
# 添加list
list2.extend(list1)
print(list2)
# 获取指定index的元素
print(list2[2])
# 删除指定values元素
list2.remove('value')
# 删除index=2的元素
del list2[2]
print(list2)
# 创建一个list1中的数据重复2次的list3
list3 = list1*2
print(list3)
# 排序
list4 = [1, 2, 8, 3, 12, 3]
# 升序
list4.sort()
print(list4)
# 降序
list4.reverse()
print(list4)
# 创建一个二维数组
list_muti = [[0, 0, 1]]*2
print(list_muti)
print(list_muti[0][1])
# *********-dict-*********
# 创建一个dict
dict1 = {}
print(type(dict1))
# 字典添加元素
dict1['a'] = 'value-a'
print(dict1)
# 批量添加元素
listx = []
for value in ('abced'):
  for key in (['abcde', 're', 1, 'n你re1', 3]):
    if key in listx:
      continue
    else:
      listx.append(key)
      # print(value)
      # print(key)
      dict1[key] = value
      break
print(dict1)
# dict里的fromkeys方法
dict1 = dict1.fromkeys(('a', 'ccc'), """ "nn'n'" """)
print(dict1)
# 获取keys之后转成list显示
keylist = list(dict1.keys())
print('%s' % keylist[0])
# 获取values之后转成list显示
valuelist = list(dict1.values())
print('%s' % valuelist[0])
print(dict1)
# 获取key对应的value
value = dict1['a']
print(value)
value2 = dict1.get('ccc', '木有找到')
# 与dict.get()方法一致,但是如果没有对应的key会自动创建一个key,value为none
dict1.setdefault('m')
print(dict1)
# 更新字典,如果没有对应的key会自动添加key-dict
dict1.update({'ccc': 'fff2'})
print(dict1)
value2 = dict1.get('ccc1', '木有找到')
print(value2)

总结

到此这篇关于Python dict的常用方法的文章就介绍到这了,更多相关Python dict的常用方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 Python
python 与服务器的共享文件夹交互方法
Dec 27 Python
pip安装py_zipkin时提示的SSL问题对应
Dec 29 Python
Python按钮的响应事件详解
Mar 04 Python
Python定时任务APScheduler的实例实例详解
Jul 22 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
Aug 17 Python
python给图像加上mask,并提取mask区域实例
Jan 19 Python
使用PyQt5实现图片查看器的示例代码
Apr 21 Python
Python闭包装饰器使用方法汇总
Jun 29 Python
Matlab求解数组中的最大值及它所在的具体位置
Apr 16 Python
python 下划线的多种应用场景总结
May 12 Python
教你使用TensorFlow2识别验证码
Jun 11 Python
Python3 webservice接口测试代码详解
Jun 23 #Python
python和JavaScript哪个容易上手
Jun 23 #Python
pytorch 查看cuda 版本方式
Jun 23 #Python
Spring @Enable模块驱动原理及使用实例
Jun 23 #Python
PyTorch-GPU加速实例
Jun 23 #Python
Python基于yaml文件配置logging日志过程解析
Jun 23 #Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
Jun 23 #Python
You might like
php 什么是PEAR?(第三篇)
2009/03/19 PHP
php checkdate、getdate等日期时间函数操作详解
2010/03/11 PHP
PHP命名空间(namespace)的动态访问及使用技巧
2014/08/18 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
2016/10/08 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
js null,undefined,字符串小结
2010/08/21 Javascript
jquery实现按Enter键触发事件示例
2013/09/10 Javascript
jQuery中:contains选择器用法实例
2014/12/30 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
2015/09/24 Javascript
js针对ip地址、子网掩码、网关的逻辑性判断
2016/01/06 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
2018/09/21 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
python 生成目录树及显示文件大小的代码
2009/07/23 Python
Python连接DB2数据库
2016/08/27 Python
浅析使用Python操作文件
2017/07/31 Python
PyQt5 pyqt多线程操作入门
2018/05/05 Python
python自定义线程池控制线程数量的示例
2019/02/22 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
django 取消csrf限制的实例
2020/03/13 Python
Mytheresa美国官网:德国知名的女性奢侈品电商
2017/05/27 全球购物
部队反四风对照检查材料
2014/09/26 职场文书
2014年团支书工作总结
2014/11/14 职场文书
骨干教师考核评语
2014/12/31 职场文书
催款函范本大全
2015/06/24 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
2019个人工作总结
2019/06/21 职场文书