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入门_条件控制(详解)
May 16 Python
Python实现解析Bit Torrent种子文件内容的方法
Aug 29 Python
python实现五子棋游戏
Jun 18 Python
Python matplotlib生成图片背景透明的示例代码
Aug 30 Python
python__name__原理及用法详解
Nov 02 Python
使用Python画出小人发射爱心的代码
Nov 23 Python
python pycharm最新版本激活码(永久有效)附python安装教程
Sep 18 Python
TensorFlow2.0:张量的合并与分割实例
Jan 19 Python
python 实现线程之间的通信示例
Feb 14 Python
Python数据可视化实现多种图例代码详解
Jul 14 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
Jan 27 Python
python快速安装OpenCV的步骤记录
Feb 22 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选项与信息函数的使用详解
2013/05/10 PHP
PHP ADODB生成下拉列表框功能示例
2018/05/29 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
php中yii框架实例用法
2020/12/22 PHP
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
红米手机抢购的js代码
2014/03/10 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
vue2.0安装style/css loader的方法
2018/03/14 Javascript
iview Upload组件多个文件上传的示例代码
2018/09/30 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
js实现多个倒计时并行 js拼团倒计时
2019/02/25 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
2019/05/22 Javascript
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
Vue中keep-alive的两种应用方式
2020/07/15 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
Python性能优化技巧
2015/03/09 Python
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
Python3实现并发检验代理池地址的方法
2016/09/18 Python
python列表生成式与列表生成器的使用
2018/02/23 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
2019/01/22 Python
在SQLite-Python中实现返回、查询中文字段的方法
2019/07/17 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
viagogo法国票务平台:演唱会、体育比赛、戏剧门票
2017/03/27 全球购物
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
给女朋友的道歉短信
2015/05/12 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
Mysql事务索引知识汇总
2022/03/17 MySQL