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脚本把sqlAlchemy对象转换成dict的教程
May 29 Python
Python制作刷网页流量工具
Apr 23 Python
python 实现语音聊天机器人的示例代码
Dec 02 Python
python 同时运行多个程序的实例
Jan 07 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
Jul 23 Python
Django框架 查询Extra功能实现解析
Sep 04 Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 Python
python sorted函数原理解析及练习
Feb 10 Python
python写文件时覆盖原来的实例方法
Jul 22 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
Sep 14 Python
pandas DataFrame.shift()函数的具体使用
May 24 Python
python之基数排序的实现
Jul 26 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
PHP4实际应用经验篇(9)
2006/10/09 PHP
PHP 中检查或过滤IP地址的实现代码
2011/11/27 PHP
[原创]smarty简单模板变量输出方法
2016/07/09 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
js 可拖动列表实现代码
2011/12/13 Javascript
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
jquery实现按Enter键触发事件示例
2013/09/10 Javascript
js select option对象小结
2013/12/20 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
2015/08/26 Javascript
解析Node.js基于模块和包的代码部署方式
2016/02/16 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
在Python中使用模块的教程
2015/04/27 Python
Linux下将Python的Django项目部署到Apache服务器
2015/12/24 Python
python ansible服务及剧本编写
2017/12/29 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
virtualenv介绍及简明教程
2020/06/23 Python
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
大班幼儿评语大全
2014/04/30 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
村安全生产责任书
2014/08/25 职场文书
技术负责人岗位职责
2015/02/10 职场文书
2015年员工工作总结范文
2015/04/08 职场文书
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android