python 知识点累积

embedded/2024/9/23 14:29:15/

.items()

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

运行结果

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

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

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

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

python">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中所有的(键,值)对。
  • 你可以使用这个对象来遍历字典中的键值对,但不能像操作列表或元组那样对其进行索引或切片。
  • 视图对象反映了字典的当前状态,任何对字典的非就地修改都会立即反映在这些视图对象上。

示例

python">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的内容。当你从字典中删除一个项时,这个变化也会反映在视图对象中。


http://www.ppmy.cn/embedded/58938.html

相关文章

数据库第三次作业

在数据库中创建一个表student用于存储学生信息 向student表中添加一条新记录 记录中id字段的值为1name字段的值为"monkey"grade字段的值为98.5 向student表中添加多条新记录 “bob”,95.5 “john”,90.0 “smith”,88.5 向student表中添加一条新记录,部分…

训练集,验证集,测试集的作用

训练集 (Training Set), 验证集 (Validation Set) 和测试集 (Test Set) 是机器学习和深度学习模型开发过程中不可或缺的部分。它们的主要作用和区别如下: 训练集: 作用:用于训练模型,调整模型的参数(如神经网络的权重&…

[计算机网络] VPN技术

VPN技术 1. 概述 虚拟专用网络(VPN)技术利用互联网服务提供商(ISP)和网络服务提供商(NSP)的网络基础设备,在公用网络中建立专用的数据通信通道。VPN的主要优点包括节约成本和提供安全保障。 优…

用SmartSql从数据库表中导出文档

在 SmartSql 中从数据库表中导出文档通常意味着将表结构和数据导出为文档格式,比如 Word、PDF、HTML 或者 Markdown。这通常涉及到以下步骤: 连接到数据库: 打开 SmartSql 客户端,并确保已成功连接到你的目标数据库。你需要提供正…

3D Web开发新篇章:threelab探索之旅

3D Web开发新篇章:threelab探索之旅 随着数字技术的飞速发展,三维图形技术已经渗透到我们生活的每一个角落,从在线游戏到数字艺术,再到虚拟现实体验。今天,我们将探索一个全新的学习平台——threelab.cn,它…

逻辑回归不是回归吗?那为什么叫回归?

RNN 逻辑回归不是回归吗?那为什么叫回归?逻辑回归的基本原理逻辑函数(Sigmoid函数)二元分类 为什么叫做“回归”?逻辑回归的应用场景总结 逻辑回归不是回归吗?那为什么叫回归? 逻辑回归&#x…

提交表单form之后发送表单内容到指定邮箱(单php文件实现)

提交各种表单之后,自动将表单的内容通过邮件api接口的形式自动发送到指定的邮箱。步骤如下: 1.在aoksend注册一个账号。 2.绑定一个自己的域名。做域名解析之后验证。验证通过后自动提交审核。等待审核通过。 3.设置一个邮件模板。aoksend内置了一些优…

Java并发编程之多线程实现方法

Java实现多线程的方式有比较多,但究其本质,最终都是在执行Thread的run方法,这个后文再作解释。下面先看看各种实现方式。 实现 Runnable 接口 public class RunnableThread implements Runnable{Overridepublic void run() {System.out.pr…