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 translator使用实例
Sep 06 Python
python迭代器的使用方法实例
Nov 21 Python
Pyramid添加Middleware的方法实例
Nov 27 Python
Python基于DES算法加密解密实例
Jun 03 Python
python开发中module模块用法实例分析
Nov 12 Python
详解设计模式中的工厂方法模式在Python程序中的运用
Mar 02 Python
Python+PyQt5实现美剧爬虫可视工具的方法
Apr 25 Python
django form和field具体方法和属性说明
Jul 09 Python
在django中实现choices字段获取对应字段值
Jul 12 Python
Python 调用C++封装的进一步探索交流
Mar 04 Python
Python Pygame实战在打砖块游戏的实现
Mar 17 Python
实战Python爬虫爬取酷我音乐
Apr 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
PHP4引用文件语句的对比
2006/10/09 PHP
用PHP控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
JS代码优化技巧之通俗版(减少js体积)
2011/12/23 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
JQuery 控制内容长度超出规定长度显示省略号
2014/05/23 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
ECMAScript6中Set/WeakSet详解
2015/06/12 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
详解jQuery简单的表单应用
2016/12/16 Javascript
浅谈Vue的基本应用
2016/12/27 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
2017/04/06 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
微信小程序自定义toast弹窗效果的实现代码
2018/11/15 Javascript
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
简单学习Python多进程Multiprocessing
2017/08/29 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
python3爬虫中多线程的优势总结
2020/11/24 Python
HTML实现代码雨源码及效果示例
2020/02/25 HTML / CSS
用canvas显示验证码的实现
2020/04/10 HTML / CSS
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
比驿:全球酒店比价网
2018/06/20 全球购物
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
企业办公室岗位职责
2014/03/12 职场文书
广告宣传策划方案
2014/05/21 职场文书
水利水电专业自荐信
2014/07/08 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫