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捕捉和模拟鼠标事件的方法
Jun 03 Python
python3实现UDP协议的服务器和客户端
Jun 14 Python
Python实现mysql数据库更新表数据接口的功能
Nov 19 Python
Python利用itchat对微信中好友数据实现简单分析的方法
Nov 21 Python
python requests 测试代理ip是否生效
Jul 25 Python
Python爬虫基础之XPath语法与lxml库的用法详解
Sep 13 Python
Python中最大递归深度值的探讨
Mar 05 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
python中matplotlib条件背景颜色的实现
Sep 02 Python
在python中利用dict转json按输入顺序输出内容方式
Feb 27 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
May 03 Python
opencv 图像礼帽和图像黑帽的实现
Jul 07 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 采集获取指定网址的内容
2010/01/05 PHP
php实现统计邮件大小的方法
2013/08/06 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
window.location.href中url中数据量太大时的解决方法
2013/12/23 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
2017/05/07 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
JS实现百度搜索框关键字推荐
2020/02/17 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
2020/03/04 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
微信小程序实现日历签到
2020/09/21 Javascript
深入理解Python中range和xrange的区别
2017/11/26 Python
redis数据库及与python交互用法简单示例
2019/11/01 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
python 读取二进制 显示图片案例
2020/04/24 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
css3实现针线缝合效果(图解步骤)
2013/02/04 HTML / CSS
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
EJB实例的生命周期
2016/10/28 面试题
JAVA招聘远程笔试题
2015/07/23 面试题
食堂采购员岗位职责
2014/03/17 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
2015年资料员工作总结
2015/04/25 职场文书