当前位置: 首页 > news >正文

python 知识点累积

.items()

tinydict = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www.taobao.com'}print (tinydict.items())

运行结果

dict_items([('Google', 'www.google.com'), ('Runoob', 'www.runoob.com'), ('taobao', 'www.taobao.com')])

返回的 dict_items([...]) 是一个字典项的视图对象,它包含了字典中所有的(键,值)对。

dict_items 是一个特殊的视图对象,

如何正确理解和使用 dict.items() 方法的示例:

tinydict = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www.taobao.com'}  # 打印字典项的视图对象  
print(tinydict.items())  
# 输出: dict_items([('Google', 'www.google.com'), ('Runoob', 'www.runoob.com'), ('taobao', 'www.taobao.com')])  # 如果你想遍历这些键值对,可以这样做:  
for key, value in tinydict.items():  print(key, value)  
# 输出:  
# Google www.google.com  
# Runoob www.runoob.com  
# taobao www.taobao.com
视图对象中() 和[]的意义

在Python中,当你看到类似于dict_items([...])这样的输出时,这里的()[]并不代表传统意义上的元组(tuple)或列表(list),而是用来表示这是一个视图对象(view object)的上下文或格式。不过,这里实际上有一个小小的误导,因为dict_items通常不会直接显示为dict_items([]),特别是当字典不为空时。

视图对象

在Python的字典(dict)中,.items().keys(), 和 .values() 方法都返回视图对象,而不是列表、元组或其他容器类型。这些视图对象提供了字典内容的动态视图,意味着它们反映了字典的当前状态,并且任何对字典的非就地(non-in-place)修改都会反映在视图对象上。但是,视图对象本身并不支持索引操作(如使用[]),尽管它们看起来有点像是可迭代的列表或元组。

() 和 [] 在这里的含义
  • ():在dict_items(...)中,()并不表示这是一个元组。这里的()更多是用于格式化或描述性的目的,表明dict_items后面跟着的是一个动态的、可迭代的对象,而不是一个具体的值或容器。然而,实际上你并不会在dict_items的输出中看到(),除非是在某种特定的字符串表示或文档描述中。

  • []:在描述或尝试表示一个空的视图对象时,可能会看到dict_items([])这样的表述,但这实际上是不准确的。因为dict_items对象并不是列表,即使它们看起来像是一个空的列表表示([])。当字典为空时,更准确的表示应该是类似于dict_items([])的文本(尽管这仍然不是标准输出),但实际上你看到的更可能是没有包含任何元素的dict_items对象的表示,它可能只是简单地显示为一个空的视图对象,而不包含任何[]

正确的理解

  • 当你调用d.items()时,你应该理解为一个动态的、可迭代的对象被返回了,它包含了字典d中所有的(键,值)对。
  • 你可以使用这个对象来遍历字典中的键值对,但不能像操作列表或元组那样对其进行索引或切片。
  • 视图对象反映了字典的当前状态,任何对字典的非就地修改都会立即反映在这些视图对象上。

示例

my_dict = {'a': 1, 'b': 2}  
items_view = my_dict.items()  # 遍历视图对象  
for key, value in items_view:  print(key, value)  # 删除字典中的一个项  
del my_dict['a']  # 再次遍历视图对象(注意:这里的items_view仍然有效,因为它反映了字典的当前状态)  
for key, value in items_view:  print(key, value)  # 输出将不包括已删除的项

在这个例子中,items_view是一个视图对象,它动态地反映了my_dict的内容。当你从字典中删除一个项时,这个变化也会反映在视图对象中。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • js逆向-webpack-python
  • YOLOv8损失函数改进-增加MPDIoU提升边界框回归精度【附代码】
  • 苹果入局,AI手机或将实现“真智能”?
  • Spring懒加载Bean机制
  • 昇思25天学习打卡营第19天 | 基于MindSpore通过GPT实现情感分类
  • PGCCC|【PostgreSQL】PCA认证考试大纲#postgresql认证
  • GitHub 站点打不开
  • JVM原理(二十):JVM虚拟机内存的三特性详解
  • spark shuffle写操作——SortShuffleWriter
  • 将具有多个sheet的excel表格中所有sheet某一列翻译成中文,且保留原始样式
  • [Python学习篇] Python进程和线程
  • QT程序异常结束解决方法
  • rancher管理多个集群
  • 科技云报道:产业为根大模型应用为擎,容联云推动企业营销服场景重塑
  • 【网络协议】PIM
  • [Vue CLI 3] 配置解析之 css.extract
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • 【知识碎片】第三方登录弹窗效果
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • JAVA并发编程--1.基础概念
  • LeetCode算法系列_0891_子序列宽度之和
  • Material Design
  • PHP的类修饰符与访问修饰符
  • React 快速上手 - 07 前端路由 react-router
  • Redis 懒删除(lazy free)简史
  • Ruby 2.x 源代码分析:扩展 概述
  • 规范化安全开发 KOA 手脚架
  • 类orAPI - 收藏集 - 掘金
  • 聊聊flink的TableFactory
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 小程序01:wepy框架整合iview webapp UI
  • 一个项目push到多个远程Git仓库
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 我们雇佣了一只大猴子...
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (C++)八皇后问题
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (排序详解之 堆排序)
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转载)CentOS查看系统信息|CentOS查看命令
  • (轉貼) UML中文FAQ (OO) (UML)
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET Core引入性能分析引导优化
  • .NET文档生成工具ADB使用图文教程
  • .NET之C#编程:懒汉模式的终结,单例模式的正确打开方式
  • //usr/lib/libgdal.so.20:对‘sqlite3_column_table_name’未定义的引用
  • @Resource和@Autowired的区别
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • [20150904]exp slow.txt
  • [AIGC] Java 和 Kotlin 的区别