草庐IT

integer-hashing

全部标签

python - 将 "integer" float 转换为 int 总是会返回最接近的整数吗?

我通过将两个数字相除得到一个float。我知道数字是可以整除的,所以我总是有一个整数,只是它是浮点型的。但是,我需要一个实际的int类型。我知道int()会去掉小数点(即四舍五入)。我担心因为花车不准确,如果我这样做,例如int(12./3)或int(round(12./3))它可能最终为3而不是4,因为4的浮点表示可能是3.9999999593519561(不是,只是一个例子)这会发生吗?我能确保它不会发生吗?(我问是因为在reshape一个numpy数组时,我收到一条警告说形状必须是整数,而不是float。) 最佳答案 将flo

Python hash() 无法处理长整数?

我定义了一个类:classA:'''hashtestclass>>>a=A(9,1196833379,1,1773396906)>>>hash(a)-340004569Thisisweird,12544897317Lexpected.'''def__init__(self,a,b,c,d):self.a=aself.b=bself.c=cself.d=ddef__hash__(self):returnself.a*self.b+self.c*self.d为什么在doctest中,hash()函数给出一个负整数? 最佳答案 它似乎仅限

python - 与 Python 3.1 文档相反,hash(obj) != id(obj)。那么哪个是正确的?

以下内容来自Pythonv3.1.2文档:来自Python语言引用第3.3.1节基本自定义:object.__hash__(self)...User-definedclasseshave__eq__()and__hash__()methodsbydefault;withthem,allobjectscompareunequal(exceptwiththemselves)andx.__hash__()returnsid(x).来自词汇表:hashable...Objectswhichareinstancesofuser-definedclassesarehashablebydefault

python 错误 "list indices must be integers",它们是整数

我有一个问题。我有一个包含31个元素的数组,称为颜色。我还有另一个数组,整数在0到31之间变化,这称为c。我想生成一个新数组,其中c中的值现在是颜色中的相应值。我写:newarray=colors[c]但得到错误消息“listindicesmustbeintegers”但c是一个整数数组。我是python的新手,没有时间学习教程,因为我只需要它来完成特定的绘图任务。谁能帮帮我?谢谢 最佳答案 整数数组!=整数列表索引必须是整数-你已经给出了一个整数列表。你可能想要一个列表理解:newarray=[colors[i]foriinc]编

python - float.as_integer_ratio() 的实现限制

近日,有记者提到float.as_integer_ratio(),Python2.6中的新增功能,指出典型的浮点实现本质上是实数的有理逼近。出于好奇,我不得不尝试π:>>>float.as_integer_ratio(math.pi);(884279719003555L,281474976710656L)我有点惊讶没有看到更多accurate结果归因于Arima,:(428224593349304L,136308121570117L)例如,这段代码:#!/usr/bin/envpythonfromdecimalimport*getcontext().prec=36print"pytho

python - 可见弃用警告 : using a non-integer number instead of an integer will result in an error in the future

当运行涉及以下函数的python程序时,image[x,y]=0给出以下错误消息。这是什么意思,如何解决?谢谢。警告VisibleDeprecationWarning:usinganon-integernumberinsteadofanintegerwillresultinanerrorinthefutureimage[x,y]=0Illegalinstruction(coredumped)代码defcreate_image_and_label(nx,ny):x=np.floor(np.random.rand(1)[0]*nx)y=np.floor(np.random.rand(1)[

python - TypeError : list indices must be integers, 不是 str Python

list[s]是一个字符串。为什么这不起作用?出现如下错误:TypeError:listindicesmustbeintegers,notstrlist=['abc','def']map_list=[]forsinlist:t=(list[s],1)map_list.append(t) 最佳答案 当你遍历一个列表时,循环变量接收实际的列表元素,而不是它们的索引。因此,在您的示例中s是一个字符串(第一个abc,然后是def)。看起来您要做的基本上是这样的:orig_list=['abc','def']map_list=[(el,1)f

Python - 类 __hash__ 方法和集合

这个问题在这里已经有了答案:addobjectintopython'ssetcollectionanddeterminebyobject'sattribute(1个回答)关闭6年前。我正在使用python类的set()和__hash__方法来防止在集合中添加相同的哈希对象。根据pythondata-modeldocument,set()将相同的散列对象视为相同的对象并且只添加一次。但它的行为不同如下:classMyClass(object):def__hash__(self):return0result=set()result.add(MyClass())result.add(MyCl

python - hash(None) 是如何计算的?

在我的机器上,hash(None)返回一个值:>>>hash(None)-2138947203只是出于好奇,这个哈希值是如何计算出来的?这个值似乎不是基于None的id,因为如果我重新启动Python解释器,它是相同的。 最佳答案 它是基于None的id,但是None是定义为C全局变量的少数Python对象之一,因此它的地址(通常)不Python运行之间的变化。其他此类对象是True和False(但它们被散列为整数),或内置类,如object和tuple.但是,不同的CPython构建之间的地址(和哈希)是不同的。在我的系统上,ha

什么是Hash(哈希)?

概念:哈希即可以是一种数据结构,也可以是一种函数概念通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数可以很快找到该元素。哈希(散列)方法,哈希方法中使用的转换函数称为哈希(散列)函数,构造出来的结构称为哈希表(HashTable)(或者称散列表)哈希算法不过是一个均匀的运算,它的输入可以是字符串,可以是数据,可以是任何文件,经过哈希运算后,变成一个固定长度的输出,该输出就是哈希值。但是哈希算法有一个很大的特点,就是你不能从结果推算出输入,所以又称为不可逆的算法哈希的特性不可逆:就如同你可以通过x*y=z得到z,但你不能确定z=x*y