菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 3 教程
Python3 教程 Python3 简介 Python3 环境搭建 Python3 VScode Python3 基础语法 Python3 基本数据类型 Python3 数据类型转换 Python3 解释器 Python3 注释 Python3 运算符 Python3 数字(Number) Python3 字符串 Python3 列表 Python3 元组 Python3 字典 Python3 集合 Python3 条件控制 Python3 循环语句 Python3 编程第一步 Python3 推导式 Python3 迭代器与生成器 Python3 with Python3 函数 Python3 lambda Python3 装饰器 Python3 数据结构 Python3 模块 Python __name__ Python3 输入和输出 Python3 File Python3 OS Python3 错误和异常 Python3 面向对象 Python3 命名空间/作用域 Python 虚拟环境的创建 Python 类型注解 Python3 标准库概览 Python3 实例 Python 测验

Python3 高级教程

Python3 正则表达式 Python3 CGI编程 Python3 MySQL(mysql-connector) Python3 MySQL(PyMySQL) Python3 网络编程 Python3 SMTP发送邮件 Python3 多线程 Python3 XML 解析 Python3 JSON Python3 日期和时间 Python3 内置函数 Python3 MongoDB Python3 urllib Python uWSGI 安装配置 Python3 pip Python3 operator Python math Python requests Python random Python OpenAI Python 有用的资源 Python AI 绘画 Python statistics Python hashlib Python 量化 Python pyecharts Python selenium 库 Python 爬虫 Python Scrapy 库 Python Markdown Python sys 模块 Python Pickle 模块 Python subprocess 模块 Python queue 模块 Python StringIO 模块 Python logging 模块 Python datetime 模块 Python re 模块 Python csv 模块 Python threading 模块 Python asyncio 模块 Python PyQt Python for 循环 Python while 循环
(追記) (追記ここまで)

Python3 字典 values() 方法

Python3 字典 Python3 字典


描述

Python3 字典 values() 方法返回一个视图对象。

dict.keys()、dict.values() 和 dict.items() 返回的都是视图对象( view objects),提供了字典实体的动态视图,这就意味着字典改变,视图也会跟着变化。

视图对象不是列表,不支持索引,可以使用 list() 来转换为列表。

我们不能对视图对象进行任何的修改,因为字典的视图对象都是只读的。

语法

values()方法语法:

dict.values()

参数

  • NA。

返回值

返回视图对象。

实例

以下实例展示了 values() 方法的使用方法:

实例

>>> dishes = {'eggs': 2, 'sausage': 1, 'bacon': 1, 'spam': 500}
>>> keys = dishes.keys()
>>> values = dishes.values()

>>> # 迭代
>>> n = 0
>>> for val in values:
... n += val
>>> print(n)
504

>>> # keys 和 values 以相同顺序(插入顺序)进行迭代
>>> list(keys) # 使用 list() 转换为列表
['eggs', 'sausage', 'bacon', 'spam']
>>> list(values)
[2, 1, 1, 500]

>>> # 视图对象是动态的,受字典变化的影响,以下删除了字典的 key,视图对象转为列表后也跟着变化
>>> del dishes['eggs']
>>> del dishes['sausage']
>>> list(values)
[1, 500]
>>> #相同两个 dict.values() 比较返回都是 False
>>> d = {'a': 1}
>>> d.values() == d.values()
False

Python3 字典 Python3 字典

AI 思考中...

1 篇笔记 写笔记

  1. #0

    antilina

    285***[email protected]

    19

    关于例子中 d.values() == d.values() 结果为 False 的问题:

    我在交互式界面试了一下,发现每次 id(d.values()) 结果都不同,这可能导致例子中的比较结果为 False

    >>>d = {'a':1}
    >>>id(d)
     1680560690624
    >>>id(d.values())
     1680560502864
    >>>id(d.values())
     1680560504496
    >>>id(d.values())
     1680560500416>>d = {'a':1}
    >>>id(d)
     1680560690624
    >>>id(d.values())
     1680560502864
    >>>id(d.values())
     1680560504496
    >>>id(d.values())
     1680560500416" style="display: none;">>>d = {'a':1}
    >>>id(d)
     1680560690624
    >>>id(d.values())
     1680560502864
    >>>id(d.values())
     1680560504496
    >>>id(d.values())
     1680560500416" style="display: none;">

    然后继续试,发现不是交互也会存在这种情况,见下面的例子:

    (针对这个例子,我将 "d.values() == d.values()" 语句都删除后,其他所有输出结果都相同,id 没有变化,不知道为什么,希望有大佬解答)

    d = {'a':1}
    print(id(d.values())) #2769033635840
    print(d.values() == d.values()) #False
    print(id(d.values())) #2769033638624
    print(id(d.values()),id(d.values()),d.values() == d.values()) #2769033638624 2769033638624 False
    print(id(d.values())) #2769033635840
    print(id(d.values())) #2769033635840

    但是对于类似的 dict.keys()dict.items() 却有所不同。

    >>>d = {'a':1}
    >>>d.keys() == d.keys()
     True
    >>>d.items() == d.items()
     True>>d = {'a':1}
    >>>d.keys() == d.keys()
     True
    >>>d.items() == d.items()
     Tr
    " style="display: none;">

    我还发现 id(d.keys()) 也是会变的,但是会出现重复的情况,并且存在在几个 id 值之间来回重复的情况,id(d.items()) 也是这样。

    在交互界面中,还有以下一个例子:

    >>>d = {'a':1}
    >>>id(d.keys()),id(d.values()),id(d.items())
     (2196330461840, 2196330461840, 2196330461840)

    发现三个 id 值是一样的,但是如果分成三条语句,结果又不同了。

    这些是我试验的结果,但是我不知道为什么id会不断的变化,以及为什么只有 id(d.values()) == id(d.values()) 的结果是 False,希望能有大佬解释一下原因,谢谢。

    antilina

    285***[email protected]

    3年前 (2023年08月04日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /