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 09 Python
django+js+ajax实现刷新页面的方法
May 22 Python
Python切片工具pillow用法示例
Mar 30 Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
python使用opencv在Windows下调用摄像头实现解析
Nov 26 Python
python清空命令行方式
Jan 13 Python
python使用html2text库实现从HTML转markdown的方法详解
Feb 21 Python
python中使用you-get库批量在线下载bilibili视频的教程
Mar 10 Python
python读取图像矩阵文件并转换为向量实例
Jun 18 Python
Pycharm自带Git实现版本管理的方法步骤
Sep 18 Python
忆童年!用Python实现愤怒的小鸟游戏
Jun 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学习 运算符与运算符优先级
2008/06/15 PHP
php 删除无限级目录与文件代码共享
2008/11/22 PHP
php使用GeoIP库实例
2014/06/27 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
ajax的分页查询示例(不刷新页面)
2017/01/11 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
2017/02/20 Javascript
深入理解AngularJs-scope的脏检查(一)
2017/06/19 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
微信小程序 组件的外部样式externalClasses使用详解
2019/09/06 Javascript
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
vue-cli 关闭热更新操作
2020/09/18 Javascript
利用Vue实现简易播放器的完整代码
2020/12/30 Vue.js
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
使用Python的Twisted框架构建非阻塞下载程序的实例教程
2016/05/25 Python
python 基础教程之Map使用方法
2017/01/17 Python
使用Python实现简单的服务器功能
2017/08/25 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
2019/06/12 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
python列表推导式入门学习解析
2019/12/02 Python
Python修改列表值问题解决方案
2020/03/06 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
奥地利领先的在线药房:SHOP APOTHEKE
2019/10/07 全球购物
个人银行贷款担保书
2014/04/01 职场文书
小学生评语大全
2014/04/18 职场文书
个人作风建设心得体会
2014/10/22 职场文书
党员学习群众路线心得体会
2014/11/04 职场文书
学生检讨书
2015/01/27 职场文书
简历自我评价模板
2015/03/11 职场文书
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers