问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在Python中,为什么字典的键值不可以更改

发布网友 发布时间:2022-04-05 23:41

我来回答

1个回答

热心网友 时间:2022-04-06 01:10

要回答这个问题,首先明白一个概念:

哈希(Hash)

Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

所有散列函数都有如下一个基本特性:如果两个散列值是不相同的(根据同一函数),那么这两个散列值的原始输入也是不相同的。这个特性是散列函数具有确定性的结果。但另一方面,散列函数的输入和输出不是一一对应的,如果两个散列值相同,两个输入值很可能是相同的,但并不能绝对肯定二者一定相等。输入一些数据计算出散列值,然后部分改变输入值,一个具有强混淆特性的散列函数会产生一个完全不同的散列值。

回到字典key问题,python的dict的key必须是唯一的,所以,其必须是一个可哈希的值,才能保证得到唯一的内存地址。在python里,字符串,数字,元组都是不可变对象,也是可哈希的值。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
键盘怎么完全拆卸清理并重新组装 高配置赛车游戏电脑游戏5款赛车游戏推荐家里电脑就能玩 现在组装一个电脑要多少钱 电脑什么配置好又便宜笔记本电脑什么配置好一点 电脑看电影配置专门看电影的电脑主机需要什么配置 衣服架子如何收纳 阳台的晾衣架如何收纳 如何收纳晾衣架 晒衣架如何收纳 苹果icloud的双重认证怎么关掉 python 如何使数组中的元素不重复 python 字典可以有相同的key吗 我用Python写的,这里为什么不会循环测试字典里的键呢? python字典中存在相同的key,如何把这个key对应的值依次输出? python的dic和set的key不可变还是不能重复啊如图 python为什么使用字典解析会出现值一样的结果 python将字典的键和值对换后值重复怎么办 laravel数据库读写分离了,如何指定从写的数据库读取数据? PHP的Laravel中的如何从视图中获取来自数据库中的信息并在控制器中获取 在laravel或者thinkphp中使用模型获取商品列表时怎么也获取到每条数据对应的分类 为什么Laravel会成为最成功最流行的PHP框架 laravel5 怎么获取数组形式的数据 laravel 使用all获取数据库数据的时候,怎么使用数据 thinkphp 中如何判断验证码是否正确 tp框架中 验证码session为空的原因 如何把Thinkphp的验证码单独使用 thinkphp如何获取session中的验证码 使用thinkPHP 验证码的注意事项? thinkphp5 验证码怎么用 thinkphp怎样检验自己生成的验证码 python 字典 合并重复key的问题 python字典的值可以是多个吗 Python中5是字典中的值,用*3,怎么结果是555,不是15? python 一个由字典构成的列表,修改其中1个字典的键的值,却把该列表所有字典相同的键的值都一起修改了? 求python中字典结构对值的排序的函数, 值为数字, 可能存在重复 python字典key不同,value相同的情况下,怎么取出所有key? python中字典里的值不能作为实参 python 为什么没对aliens变量内字典修改赋值 反而影响了? Python如何搭建代理IP? python 如何编写代理服务器 python下 selenium与chrome结合进行网页爬取,怎么设置代理IP python怎么写代理程序,它可以把socks转成http吗 如何用 Python 搞一个代理服务器 python selenium phantomjs怎么加代理ip 代理IP对于Python爬虫有多重要 python爬虫都有哪些算法 深度学习中经典算法有哪些python包可以直接拿来用而不用手撸代码?如题_问一问 有没有python算法书 sql数据库中的Float数据类型是占几位,几个字节 ,也就是占几个0和1 plc的float多少字节