热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

详解Python中的Dict(下篇)

目录dict的元素定位(键值定位)和遍历dict的复制(拷贝)总结学委前面展示dict的概念和增删查改!这次我们把其他函数介绍补充了。dict的元素定位(键值定位)和遍历dict这
目录


  • dict 的元素定位(键/值定位)和遍历

  • dict的复制(拷贝)

  • 总结

学委前面展示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_dict
print("*"*16 + "清空info_dict")
info_dict.clear()
print('info_dict:', info_dict) # clear 清空元素后 打印info_dict
print('shadow_copied_dict:', shadow_copied_dict) # clear 清空元素后打印 copied_dict

效果如下:


总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注北冥有鱼的更多内容!

您可能感兴趣的文章:



  • python-字典dict和集合set

  • 详解Python中的Dict

  • Python字典 dict几种遍历方式

  • Python里的dict和set的背后小秘密

  • python--字典(dict)和集合(set)详解

  • Python dict的使用误区你知道吗



推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 在 Windows 10 中,F1 至 F12 键默认设置为快捷功能键。本文将介绍几种有效方法来禁用这些快捷键,并恢复其标准功能键的作用。请注意,部分笔记本电脑的快捷键可能无法完全关闭。 ... [详细]
  • 本文详细介绍了如何在BackTrack 5中配置和启动SSH服务,确保其正常运行,并通过Windows系统成功连接。涵盖了必要的密钥生成步骤及常见问题解决方法。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
author-avatar
帅气zxc_925
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有