鱼C论坛

 找回密码
 立即注册
查看: 1752|回复: 17

[已解决]hash值

[复制链接]
发表于 2017-7-7 16:01:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
   python 中 set是可变对象,即不存在hash值,什么是hash值?
最佳答案
2017-7-7 16:30:00
只为 发表于 2017-7-7 16:23
哪些数据类型有hash值,这个怎么知道

hash是一个算法,散列摘要算法,其实就可以理解为一个函数,输入一个字符串,输出一个字符串。
只要可以转化成字符串的应该都可以用hash计算。
文件也可以以字节的形式转化成字符串,所以也可以进行hash计算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-7 16:17:46 | 显示全部楼层
散列摘要算法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-7 16:23:00 | 显示全部楼层

哪些数据类型有hash值,这个怎么知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-7 16:30:00 | 显示全部楼层    本楼为最佳答案   
只为 发表于 2017-7-7 16:23
哪些数据类型有hash值,这个怎么知道

hash是一个算法,散列摘要算法,其实就可以理解为一个函数,输入一个字符串,输出一个字符串。
只要可以转化成字符串的应该都可以用hash计算。
文件也可以以字节的形式转化成字符串,所以也可以进行hash计算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-7-7 16:39:43 | 显示全部楼层
jerryxjr1220 发表于 2017-7-7 16:30
hash是一个算法,散列摘要算法,其实就可以理解为一个函数,输入一个字符串,输出一个字符串。
只要可以 ...

那比如set,为什么没有hash值,list,tuple 这两个又怎么解释?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-7 16:42:01 | 显示全部楼层
HASH 算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。

python 的字典就是通过 HASH 实现的。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-7 16:44:36 | 显示全部楼层
小甲鱼 发表于 2017-7-7 16:42
HASH 算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。

python 的 ...

有些深奥,听不懂啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-7 16:50:45 | 显示全部楼层
只为 发表于 2017-7-7 16:44
有些深奥,听不懂啊


HASH 就是将一串字符串加工成固定长度字符组合,可以是128位,256位或者512位,这取决于使用的哈希算法。

所谓冲突,就是对于不同的字符串,却产生了两个一模一样的 HASH 值。而好的 HASH 算法就是尽可能地减少或避免冲突的出现。

以上,是 HASH 的介绍。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-7 16:52:52 | 显示全部楼层
只为 发表于 2017-7-7 16:39
那比如set,为什么没有hash值,list,tuple 这两个又怎么解释?

你把set,list,tuple都转化为str的话,就可以用hash计算了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-7-7 17:03:31 | 显示全部楼层
jerryxjr1220 发表于 2017-7-7 16:52
你把set,list,tuple都转化为str的话,就可以用hash计算了。

hash值计算是根据位置,还是什么,总有一个固定的标准吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-7 17:05:51 | 显示全部楼层
只为 发表于 2017-7-7 17:03
hash值计算是根据位置,还是什么,总有一个固定的标准吧

https://zh.wikipedia.org/wiki/%E ... 7%E5%87%BD%E6%95%B8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-7 17:08:41 | 显示全部楼层
小甲鱼 发表于 2017-7-7 16:50
HASH 就是将一串字符串加工成固定长度字符组合,可以是128位,256位或者512位,这取决于使用的哈希算法 ...

还是有一丢丢不明白,那能具体说下set()为什么不能计算hash值吗,它的元素也可以都转换为字符串的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-7 17:14:01 | 显示全部楼层
只为 发表于 2017-7-7 17:08
还是有一丢丢不明白,那能具体说下set()为什么不能计算hash值吗,它的元素也可以都转换为字符串的

hash函数的定义就是这样的,输入一个字符串,输出一个摘要字符串。虽然,set中的内容是字符串,但这也需要你事先先提取出来或者转换好。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-7 17:16:49 | 显示全部楼层
jerryxjr1220 发表于 2017-7-7 17:05
https://zh.wikipedia.org/wiki/%E6%95%A3%E5%88%97%E5%87%BD%E6%95%B8

链接不存在哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-7 17:17:28 | 显示全部楼层
本帖最后由 只为 于 2017-7-7 17:41 编辑
jerryxjr1220 发表于 2017-7-7 17:14
hash函数的定义就是这样的,输入一个字符串,输出一个摘要字符串。虽然,set中的内容是字符串,但这也需 ...


按您说的,set也是有hash值的,实际上set不是没有hash值吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-7 17:26:55 | 显示全部楼层
只为 发表于 2017-7-7 17:17
按您说的,set也是有哈市值的,实际上set不是没有hash值吗
  1. >>> m = hashlib.md5(str(set('123')).encode('utf-8'))
  2. >>> print(m.hexdigest())
  3. 14c681216650d6dff4eacbf277f0fa3e
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-7 17:50:45 | 显示全部楼层
只为 发表于 2017-7-7 17:17
按您说的,set也是有hash值的,实际上set不是没有hash值吗
4.9. Set Types — set, frozenset
A set object is an unordered collection of distinct hashable objects. Common uses include membership testing, removing duplicates from a sequence, and computing mathematical operations such as intersection, union, difference, and symmetric difference. (For other containers see the built-in dict, list, and tuple classes, and the collections module.)

为何说 set 没有 hash 呢?Python 的定义已经说明 set 对象就是由一组不同的 hash 对象组成的无序集合。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-10 10:00:59 | 显示全部楼层
谢谢大家的关注,问题差不多解决了,可能需要长时间去理解消化,再次感谢大家.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 22:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表