捋一捋Python中的Dict(下)
正式的Python专栏第29篇,同学站住,别错过这个从0开始的文章!
学委前面展示dict的概念和增删查改!这次我们把其他函数介绍补充了。
dict 的元素定位(键/值定位)和遍历
dict这种对象我们可以通过 keys() 获取所有的键的列表;
dict这种对象我们可以通过 values() 获取所有的值的列表.
这样有列表我们可以遍历整个dict对象。
但是更多使用下面的风格:
mydict = {'name': 'leixuewei','date': '20211104'
}
print("遍历字典-----开始")
for k, v in mydict.items():print("key[%s] = value[%s]" % (k, v)) # 直接打印
print("遍历字典-----结束")
这几行代码是可以直接复制运行。
下面学委准备了更加全面的代码,展示了获取key/value和遍历操作等:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/11/3 11:34 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : dict_demo3.py
# @Project : hello# 比如学委的信息作为一个字典
info_dict = dict()
info_dict['name'] = 'LEI_XUE_WEI' # 或者改为 'levin'
info_dict['blogs'] = '93' # 目前发表了93个博客文字。
info_dict['gongzhong_hao'] = '【雷学委】' # 欢迎过来关注支持
info_dict['meta-data'] = dict()print("包含特定key ?%s" % ('gongzhong_hao' in info_dict))print('所有键的列表:%s ' % info_dict.keys())
print('所有值的列表:%s ' % info_dict.values())print('获取key对应的值:', info_dict['name'])# 获取但是不设置到info_dict内
print('获取key DemoKey 对应的值:', info_dict.get('DemoKey', '匿名用户雷学委'))
# print('获取key对应的值:', info_dict['DemoKey']) #这句会抛出异常:KeyError: 'DemoKey'# 如果没有某个key,进行设置默认值并返回
print('获取key name对应的值:', info_dict.setdefault('name', '匿名用户雷学委'))
print('获取key DemoKey 对应的值:', info_dict.setdefault('DemoKey', '匿名用户雷学委'))
print('获取key DemoKey 对应的值:', info_dict['DemoKey'])print("遍历字典-----开始")
for key, value in info_dict.items():print("\tkey[%s] = value[%s]" % (key, value))
print("遍历字典-----结束")info_dict.clear() # 清空整个字典对象
效果如下:
这些操作都是比较基础,但是必须随手就来的,所以必须敲熟了。
dict的复制(拷贝)
字典的复制可以通过copy函数来实现,但是它是浅拷贝,也就是拷贝了但不完全拷贝
简单来说就是拷贝key,但是新字典的值还是沿用旧字典的值的引用。
这里也顺带提一提fromkeys函数,这个创建的新字典,只照搬了key列表,新字典内所有值都是空的。
说这么多,我们看看字典的代码示例:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/11/3 11:34 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : dict_demo4.py
# @Project : hello'''dict的拷贝问题'''
# 比如学委的信息作为一个字典
info_dict = dict()
info_dict['name'] = 'LEI_XUE_WEI' # 或者改为 'levin'
info_dict['blogs'] = '93' # 目前发表了93个博客文字。
info_dict['gongzhong_hao'] = '【雷学委】' # 欢迎过来关注支持
info_dict['meta-data'] = dict()# 选择指定key列表局部拷贝
keys_copied_dict = info_dict.fromkeys(['name', 'blogs', 'zone'])
print("keys_copied_dict :", keys_copied_dict)# 浅拷贝//Shadow Copy: 全拷贝但不完全拷贝
copied_dict = info_dict.copy()
print("copied_dict :", copied_dict)shadow_copied_dict = info_dict.copy()
print('shadow_copied_dict:', shadow_copied_dict)## 雷学委提示:下面一行代码修改了‘meta-data'这个key对应的值,我们并没有直接修改shadow_copied_dict
info_dict['meta-data']['date'] = '04 Nov 2021'print('info_dict:', info_dict)
print('shadow_copied_dict:', shadow_copied_dict) # 这里输出看到变化也传递给了 shadow_copied_dictprint("*"*16 + "清空info_dict")
info_dict.clear()
print('info_dict:', info_dict) # clear 清空元素后 打印info_dict
print('shadow_copied_dict:', shadow_copied_dict) # clear 清空元素后打印 copied_dict
效果如下:
总结
dict总体使用是非常流畅的除了拷贝的问题,下一篇学委会谈谈拷贝的问题。
希望初学者们把dict熟练掌握。
对了,喜欢Python的朋友,请关注学委的 Python基础专栏 or Python入门到精通大专栏
持续学习持续开发,我是雷学委!
编程很有趣,关键是把技术搞透彻讲明白。
欢迎关注微信,点赞支持收藏!
捋一捋Python中的Dict(下)相关推荐
- python中标识符下划线用作开头_python python中那些双下划线开头的那些函数都是干啥用用的...
1.写在前面 今天遇到了__slots__,,所以我就想了解下python中那些双下划线开头的那些函数都是干啥用用的,翻到了下面这篇博客,看着很全面,我只了解其中的一部分,还不敢乱下定义. 其实如果足 ...
- python中那些双下划线开头的那些函数都是干啥用用的
1.写在前面 今天遇到了__slots__,,所以我就想了解下python中那些双下划线开头的那些函数都是干啥用用的,翻到了下面这篇博客,看着很全面,我只了解其中的一部分,还不敢乱下定义. 其实如果足 ...
- python属性名以两个下划线开头_python python中那些双下划线开头的那些函数都是干啥用用的...
1.写在前面 今天遇到了__slots__,,所以我就想了解下python中那些双下划线开头的那些函数都是干啥用用的,翻到了下面这篇博客,看着很全面,我只了解其中的一部分,还不敢乱下定义. 其实如果足 ...
- python中那些双下划线开头的函数和变量
天下苦秦久矣. 看别人的源码总是被各种下划线带晕了,总算偶得妙文,开疑解惑. 原文预估成文于2015之前,作者不详,传播过程中许多格式不幸丢失. 本人不忍佳篇失传,斗胆稍加修缮,增补格式,希望不损原意 ...
- python中那些双下划线开头得函数和变量
Python中下划线---完全解读 Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用'from module import *'导入 __xxx__ 系统定义名字 __xxx 类 ...
- python中五种下划线 _
python中五种下划线 "_" 单前导下划线:_var 单末尾下划线:var_ 双前导下划线:__var 双前导和末尾下划线:var 单下划线:_ 在文章结尾处,你可以找到一个简 ...
- 捋一捋Python中的Dict(上)
正式的Python专栏第28篇,同学站住,别错过这个从0开始的文章! 学委前面分享了tuple/list,在Python中还有一个非常常见的数据容器就是dict! 什么是dict? dict全称为di ...
- 关于python中的dict和defaultdict
dict 在Python中如果访问字典中不存在的键,会引发KeyError异常,所以一般当我们比如统计一句话的词频时候,我们总是使用这样的处理方式: strings = ('puppy', 'kitt ...
- python中的单下划线和双下划线_python中的单下划线和双下划线
1. _ 的含义在python的类中,没有真正的私有化,不管是方法还是属性,为了编程的需要,约定加了下划线 _ 的属性和方法不属于API,不应该在类的外面访问,也不会被from M import * ...
- Python中星号、下画线、斜线含义汇总
封面图片:<Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社 图书详情: 配套资源:用书教师可以免费获取教学大纲.教案.课件.源码.习题答 ...
最新文章
- 将csv文件导入mysql
- nsis使用汇总(一)
- Centos中基于IP,域名,端口的虚拟主机搭建图文教程
- 《Spark快速大数据分析》—— 第三章 RDD编程
- (13)Python文件操作
- 淘宝淘口令n年前算法
- 字节跳动薪资_【字节跳动】到手薪资46K,工作轻松,福利超好的视频审核岗来啦!...
- 如何使用select()函数
- 在VIVADO上实现的非常简易的RISC-V CPU设计(来自《Verilog数字系统设计》夏宇闻著)
- pass在c语言中的作用,Python语句中pass语句有什么作用?浅谈pass语句的用法
- 路径追踪相关的一些内容
- 数据库管理系统的层次结构--语言处理层
- 用Python构建区块链
- 艺术媒体效果画笔Ps笔刷
- 基于卷积神经网络的不良地质体识别与分类
- 20190111 | 期末笔记博文汇总
- 非常火的朋友圈微信小游戏
- 班章管家:大学生能够运用哪些app进行理财?
- ESP32 ESP-IDF串口的使用-读GPS北斗模块数据
- Java opp 总结
热门文章
- 深入理解Android之Xposed详解
- 代码详解:以股票预测为例,揭秘时间序列预测
- Waterfall Header Bidding机制
- JQuery日历 日期选择
- 快手科技更新招股书:前11个月营收525亿元,引入10家基石投资者
- php strpos注意问题坑,php小白容易出现的 strpos 逻辑错误
- Bootstrap教程(基于Bootstrap3)~~~一文完结系列
- 独立产品灵感周刊 DecoHack #012
- 计算机考试可以用九键键盘吗,九键输入法(电脑九宫格键盘输入法)
- Android 手机震动提示效果 Android Vibrator 手机震动