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二分法实现实例
Nov 21 Python
Python列表计数及插入实例
Dec 17 Python
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
Mar 05 Python
python通过pil为png图片填充上背景颜色的方法
Mar 17 Python
浅谈Python实现贪心算法与活动安排问题
Dec 19 Python
Python带动态参数功能的sqlite工具类
May 26 Python
详解用Python实现自动化监控远程服务器
May 18 Python
Python中一些深不见底的“坑”
Jun 12 Python
python从list列表中选出一个数和其对应的坐标方法
Jul 20 Python
Python序列类型的打包和解包实例
Dec 21 Python
python新手学习使用库
Jun 11 Python
使用numpy实现矩阵的翻转(flip)与旋转
Jun 03 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
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
PHP 常用的header头部定义汇总
2015/06/19 PHP
延时重复执行函数 lLoopRun.js
2007/05/08 Javascript
Aptana调试javascript图解教程
2009/11/30 Javascript
javascript 触发HTML元素绑定的函数
2010/09/11 Javascript
CSS和JS标签style属性对照表(方便js开发的朋友)
2010/11/11 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
jQuery遍历DOM元素与节点方法详解
2016/04/14 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
JS设置时间无效问题的解决办法
2017/02/18 Javascript
详解vue-router和vue-cli以及组件之间的传值
2017/07/04 Javascript
详解vue-router数据加载与缓存使用总结
2018/10/29 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
Webpack中loader打包各种文件的方法实例
2019/09/03 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
解决Antd 里面的select 选择框联动触发的问题
2020/10/24 Javascript
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
python安装pywin32clipboard的操作方法
2019/01/24 Python
python属于解释型语言么
2020/06/15 Python
python3的pip路径在哪
2020/06/23 Python
Python timeit模块原理及使用方法
2020/10/10 Python
html5+css3实现一款注册表单实例
2013/04/17 HTML / CSS
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
都柏林通行卡/城市通票:The Dublin Pass
2020/02/16 全球购物
采购主管工作职责
2013/12/12 职场文书
电工工作职责范本
2014/02/22 职场文书
会计出纳岗位职责
2015/03/31 职场文书
护士业务学习心得体会
2016/01/25 职场文书
Jmerte 分布式压测及分布式压测配置
2022/04/30 Java/Android