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实现排序算法
Feb 14 Python
使用python绘制人人网好友关系图示例
Apr 01 Python
Python生成随机MAC地址
Mar 10 Python
详解python并发获取snmp信息及性能测试
Mar 27 Python
Python 的类、继承和多态详解
Jul 16 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
Nov 21 Python
Python实现的多叉树寻找最短路径算法示例
Jul 30 Python
用django设置session过期时间的方法解析
Aug 05 Python
Pandas数据离散化原理及实例解析
Nov 16 Python
python中设置超时跳过,超时退出的方式
Dec 13 Python
Python+OpenCV图像处理——实现轮廓发现
Oct 23 Python
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
Apr 13 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/02/08 PHP
php 在线导入mysql大数据程序
2015/06/11 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
PHP共享内存使用与信号控制实例分析
2018/05/09 PHP
js jquery做的图片连续滚动代码
2008/01/06 Javascript
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
2015/06/10 Javascript
js实现上下左右弹框划出效果
2017/03/08 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
python使用arp欺骗伪造网关的方法
2015/04/24 Python
详解Python中open()函数指定文件打开方式的用法
2016/06/04 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
深入浅析Python中的yield关键字
2018/01/24 Python
python自动化测试之如何解析excel文件
2019/06/27 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
Python中的sys.stdout.write实现打印刷新功能
2020/02/21 Python
如何用python开发Zeroc Ice应用
2021/01/29 Python
中国电子产品外贸网站:MiniIntheBox
2017/02/06 全球购物
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
英国女性时尚品牌:Apricot
2018/12/04 全球购物
办理生育手续介绍信
2014/01/14 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
同事去世追悼词
2015/06/23 职场文书
英语投诉信范文
2015/07/03 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书