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 相关文章推荐
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
Jan 17 Python
Python处理字符串之isspace()方法的使用
May 19 Python
Python中每次处理一个字符的5种方法
May 21 Python
Python的装饰器模式与面向切面编程详解
Jun 21 Python
Python自动化运维_文件内容差异对比分析
Dec 13 Python
Python使用matplotlib填充图形指定区域代码示例
Jan 16 Python
详解Python中的四种队列
May 21 Python
详解Python匿名函数(lambda函数)
Apr 19 Python
Python编写通讯录通过数据库存储实现模糊查询功能
Jul 18 Python
详解pandas中MultiIndex和对象实际索引不一致问题
Jul 23 Python
Python matplotlib画曲线例题解析
Feb 07 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 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中文分词 自动获取关键词介绍
2012/11/13 PHP
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
event.srcElement 用法笔记e.target
2009/12/18 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
jQuery实现删除li节点的方法
2016/12/06 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python网络编程之TCP通信实例和socketserver框架使用例子
2014/04/25 Python
Python装饰器的函数式编程详解
2015/02/27 Python
Python中统计函数运行耗时的方法
2015/05/05 Python
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
python利用MethodType绑定方法到类示例代码
2017/08/27 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
python 读取摄像头数据并保存的实例
2018/08/03 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
Python list与NumPy array 区分详解
2019/11/06 Python
python判断正负数方式
2020/06/03 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
基于css3 animate制作绚丽的动画效果
2015/11/24 HTML / CSS
泰国在线书店:SE-ED
2020/06/21 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
三月学雷锋月活动总结
2014/04/28 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
教师调动申请报告
2015/05/18 职场文书
超强台风观后感
2015/06/09 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB