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

Python:dict

一些关于dict的奇妙观察

实验一

首先,创建两个一模一样的字典:

dict1 = {'a': 1}
dict2 = {'a': 1}

然后,进行各种各样的相等判断:

print(dict1 == dict2)
print(dict1.keys() == dict2.keys())
print(dict1.values() == dict2.values())
print(sorted(dict1.values()) == sorted(dict2.values()))

得到令人震惊的结果:

True
True
False
True

看看dict1.values()dict2.values()究竟是何方神圣:

print(dict1.values())
print(dict2.values())

并无不同:

dict_values([1])
dict_values([1])

再看sorted后:

print(sorted(dict1.values()))
print(sorted(dict2.values()))

dict_values变为list了:

[1]
[1]

实验二

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 2, 'a': 1}print(dict1 == dict2)
print(dict1.keys() == dict2.keys())
print(dict1.values() == dict2.values())
print(sorted(dict1.values()) == sorted(dict2.values()))print(dict1.values())
print(dict2.values())
print(sorted(dict1.values()))
print(sorted(dict2.values()))

输出:

True
True
False
True
dict_values([1, 2])
dict_values([2, 1])
[1, 2]
[1, 2]

实验三

dict1 = {'a': 1, 'b': 2, 'c': 2}
dict2 = {'b': 2, 'a': 1, 'c': 1}print(dict1 == dict2)
print(dict1.keys() == dict2.keys())
print(dict1.values() == dict2.values())
print(sorted(dict1.values()) == sorted(dict2.values()))print(dict1.values())
print(dict2.values())
print(sorted(dict1.values()))
print(sorted(dict2.values()))

输出:

False
True
False
False
dict_values([1, 2, 2])
dict_values([2, 1, 1])
[1, 2, 2]
[1, 1, 2]

结论

  1. 只要dict1和dict2的key在无序意义下是一致的,dict1.keys() == dict2.keys()的结果就为True(实验二)
  2. 即使dict1和dict2的value在有序意义下是一致的,dict1.values() == dict2.values()的结果也为False(实验一),因此比较两个dict的value必须要sorted
http://www.lryc.cn/news/185188.html

相关文章:

  • git和svn 的国内的下载地址
  • matplotlib制图进阶版
  • 【Java 进阶篇】HTML介绍与软件架构相关知识详解
  • Python数据攻略-Pandas与机器学习数据准备
  • 阿里云/亚马逊云代理:aws账号购买:aws亚马逊云账号的优势
  • JSON的MIME媒体类型是application/json
  • C++ 之如何将数组传递给函数?
  • 1.7 计算机网络体系结构
  • boost在不同平台下的编译(win、arm)
  • 计算机网络(第8版)第一章概述笔记
  • Linux 部署项目
  • MySQL 基础
  • VR模拟鸡胚培养接种实验,打造沉浸式的学习环境
  • 基于ModbusTCP与西门子PLC通讯项目案例
  • Oralce数据库管理 -操作系统cpu 内存 io指标分析查询
  • my_print_defaults 及perror
  • 视频转GIF:快速生成有趣的动态图片
  • vue3 vscode no tsconfig与找不到名称“ref”。ts(2304)
  • Docker基本操作【一篇学会项目部署】
  • 目标识别项目实战:基于Yolov7-LPRNet的动态车牌目标识别算法模型(二)
  • Ceph入门到精通-sysctl.conf 配置
  • Cesium 展示——实体点击的相关属性,进行增删改
  • 【算法小课堂】二分查找算法
  • git修改提交历史中的author信息
  • 【gitlab】本地项目上传gitlab
  • freertos信号量之计数信号量
  • wc命令使用指南 | 教你如何高效统计文件字数、行数和字符数
  • 网络安全:发起一次CSRF攻击!
  • java上传文件到指定服务器
  • 揭秘 Go 中的 new() 和 make() 函数