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实现竖排打印传单手机号码易撕条
Mar 16 Python
Python二叉树的定义及常用遍历算法分析
Nov 24 Python
python编程培训 python培训靠谱吗
Jan 17 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
Apr 27 Python
Python正则表达式指南 推荐
Oct 09 Python
Python实现的线性回归算法示例【附csv文件下载】
Dec 29 Python
Python获取航线信息并且制作成图的讲解
Jan 03 Python
Python OpenCV对本地视频文件进行分帧保存的实例
Jan 08 Python
Python 抓取微信公众号账号信息的方法
Jun 14 Python
python实现Dijkstra算法的最短路径问题
Jun 21 Python
利用Python计算KS的实例详解
Mar 03 Python
python实现股票历史数据可视化分析案例
Jun 10 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
is_uploaded_file函数引发的不能上传文件问题
2013/10/29 PHP
php动态生成函数示例
2014/03/21 PHP
php根据年月获取季度的方法
2014/03/31 PHP
php写的AES加密解密类分享
2014/06/20 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
2015/12/21 PHP
图片完美缩放
2006/09/07 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
jQuery中:input选择器用法实例
2015/01/03 Javascript
jQuery获取与设置iframe高度的方法
2016/08/01 Javascript
浅析Ajax语法
2016/12/05 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
Vue2.x中的父组件传递数据至子组件的方法
2017/05/01 Javascript
Vue实现购物车场景下的应用
2017/11/27 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
2018/08/07 Javascript
vue.js中toast用法及使用toast弹框的实例代码
2018/08/27 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
2019/02/22 Javascript
js中的深浅拷贝问题简析
2019/05/10 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
Python中的一些陷阱与技巧小结
2015/07/10 Python
浅谈CSS3特性查询(Feature Query: @supports)功能简介
2017/07/31 HTML / CSS
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
英文简历中的自荐信范文
2013/12/14 职场文书
科级干部考察材料
2014/02/15 职场文书
擅自离岗检讨书
2014/09/12 职场文书
劳模事迹材料范文
2014/12/24 职场文书
实习计划书范文
2015/01/16 职场文书
python 下划线的多种应用场景总结
2021/05/12 Python