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实现在pickling的时候压缩的方法
Sep 25 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
Jan 20 Python
python计算列表内各元素的个数实例
Jun 29 Python
python实现C4.5决策树算法
Aug 29 Python
使用python实现快速搭建简易的FTP服务器
Sep 12 Python
pip指定python位置安装软件包的方法
Jul 12 Python
Django框架基础模板标签与filter使用方法详解
Jul 23 Python
详解python破解zip文件密码的方法
Jan 13 Python
Python 去除字符串中指定字符串
Mar 05 Python
3种适用于Python的疯狂秘密武器及原因解析
Apr 29 Python
基于logstash实现日志文件同步elasticsearch
Aug 06 Python
OpenCV-Python实现轮廓的特征值
Jun 09 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读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
PHP实现字符串大小写转函数的功能实例
2019/02/06 PHP
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
JS日期和时间选择控件升级版(自写)
2013/08/02 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
深入学习 JavaScript中的函数调用
2017/03/23 Javascript
Vue的属性、方法、生命周期实例代码详解
2019/09/17 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
Python模拟登录12306的方法
2014/12/30 Python
python求解水仙花数的方法
2015/05/11 Python
Python Matplotlib库入门指南
2015/05/18 Python
python 容器总结整理
2017/04/04 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
python使用suds调用webservice接口的方法
2019/01/03 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
Python实现最大子序和的方法示例
2019/07/05 Python
Python大批量搜索引擎图像爬虫工具详解
2020/11/16 Python
CSS实现的一闪而过的图片闪光效果
2014/04/23 HTML / CSS
HTML5 video播放器全屏(fullScreen)方法实例
2015/04/24 HTML / CSS
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
类、抽象类、接口的差异
2016/06/13 面试题
儿科主治医生个人求职信
2013/09/23 职场文书
影视艺术学院毕业生自荐信
2013/11/13 职场文书
班主任评语大全
2014/04/26 职场文书
2014年销售经理工作总结
2014/12/01 职场文书
采购员岗位职责
2015/02/03 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
奖金申请报告模板
2015/05/15 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
Golang实现AES对称加密的过程详解
2021/05/20 Golang
win sever 2022如何占用操作主机角色
2022/06/25 Servers