首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python对象

反过来,根据相同值,无法唯一判定输入对象是哪一个。这就是可以用加密原因。 看一下hash()文档——看文档,是一重要能力和习惯 。...文档可知,如果两个对象相等,它们值必须相等,或者说,如果两个对象已经通过==返回了True,就说明它们值相等。...可类型 在Python内置对象类型,并非都是可,只有那些不可变对象,比如整数、浮点数、字符串、元组等,才是可。...前面提到,Python对象分为可和不可两种类型,而这里检测之后,所有内置对象类型都具有__hash__方法,是不是意味着都能用于hash()函数呢?前面说过可变象是不可类型。...__hash__) 以列表可变对象,不可)和字符串(不可变对象,可)为例,发现它们__hash__返回值不同

5K20

Pandas对象

Pandas对象简介 如果底层视角观察Pandas,可以把它们看成增强版Numpy结构化数组,行列都不再是简单整数索引,还可以带上标签。...Series象是一种显示定义索引与数值关联 显示定义索引让Series对象有了更加强大能力。...就像你可以把二维数组看成是有序排列一维数组一样,你也可以把DataFrame 看成是有序排列若干Series 对象。这里“排列”指的是它们拥有共同索引。...states.columns Index(['population', 'area'], dtype='object') 因此,DataFrame 可以看作一种通用NumPy 二维数组,它行与都可以通过索引获取...Pandas Index 对象是一个很有趣数据结构,可以将它看作是一个不可变数组或有序集合 # 使用一个简单列表创建Index对象 ind = pd.Index([2, 3, 5, 7, 11]

2.6K30
您找到你想要的搜索结果了吗?
是的
没有找到

《流畅Python》学习笔记之字典

如果两个可象是相等,那么它们只一定是一样根据这个定义,原子不可变类型(str,bytes和数值类型)都是可类型,frozenset 也是可(因为根据其定义,frozenset...里只能容纳可类型),如果元组内都是可类型的话,元组也是可(元组虽然是不可变类型,但如果它里面的元素是可变类型,这种元组也不能认为是不可变)。...'B' 字典列表 列表其实是一个稀疏数组(总有空白元素数组叫稀疏数组),在 dict 列表,每个键值都占用一个表元,每个表元都有两个部分,一个是引用,另一个是引用。...如果不匹配(冲突),再在列表再取几位,然后处理一下,用处理后结果当做索引再找表元。 然后重复上面的步骤。...扩容导致结果就是要新建一个更大列表,并把原有的键添加到新列表,这个过程可能会发生新冲突,导致新列表次序发生变化。因此,不要对字典同时进行迭代和修改。

1.9K100

Pandas 2.2 中文官方教程和指南(十七)

而真实世界数据中有重复,即使在应该是唯一字段也是如此。 本节描述了重复标签如何改变某些操作行为,以及如何在操作过程防止重复出现,或者在出现重复时如何检测它们。...如上所述,在读取原始数据时处理重复是一个重要功能。也就是说,您可能希望避免在数据处理管道引入重复方法如pandas.concat()、rename()等)。...使用标量DataFrame进行切片将返回一个Series。使用标量Series进行切片将返回一个标量。但是对于重复,情况并非如此。...:第一个重新命名类别,因此Series个别值也会更名,但是如果第一个位置最后排序,重新命名值仍将最后排序。...:第一个重命名类别,因此Series个别值也会被重命名,但如果第一个位置排序到最后,重命名值仍将被排序到最后。

29610

开源图书《Python完全自学教程》第5章

——苏轼 ” 将字符串、列表和元组视为序列,是因为组成它们成员具有顺序。这是 Python 内置对象归类一种方式。...图5-1-1 字典组成 字典键值不能随心所欲地创立——本书目录和页码之间也是一种对应关系,不能乱写——有如下要求: “键”必须唯一,不能重复——参考本书目录理解,目录名称不能重复。...“键”必须是不可变对象——如果书目录名称会变化,那就不仅仅是眼花缭乱,而是手忙脚乱了。 “值”可以是 Python 任何类型对象。 “值”可以重复。...简要说明: hash:翻译为“”或“哈希”,“hashable”意即“可”、“可哈希”。截止目前,已经学习过 Python 内置对象,数字、字符串、元组都是可,也是不可变对象。...unhasable:翻译为“不可”、“不可哈希”,此前学过列表和现在学习字典,都是此类型对象,同时为可变对象。 所以,字典也不能作为键值键。

63720

数据科学 IPython 笔记本 7.4 Pandas 对象介绍

''' data可以是标量,重复来填充指定索引: pd.Series(5, index=[100, 200, 300]) ''' 100 5 200 5 300 5 dtype...与前一节讨论Series对象一样,DataFrame可以认为是 NumPy 数组扩展,也可以认为是 Python 字典特化。我们现在来看看这些观点。...正如你可能将二维数组视为对齐一维有序序列一样,你可以将DataFrame视为对齐Series对象序列。在这里,“对齐”是指它们共享相同索引。...这个Index对象本身就是一个有趣结构,它可以认为是不可变数组或有序集合(技术上是一个多值集合,因为Index对象可能包含重复值)。 这些观点在Index对象所提供操作,有一些有趣结果。...NumPy数组之间一个区别是,索引是不可变 - 也就是说,它们不能通过常规方式修改: ind[1] = 0 ''' ----------------------------------------

2.3K10

TypeError: unhashable type: dict

可变(mutable)对象,如列表和字典,就不能哈希。TypeError: unhashable type: 'dict'错误原因在Python,字典是可变,也就是说它们可以修改。...由于元组是不可变因此可以哈希。...例如,我们使用一个字典来缓存一些计算结果,以避免重复计算。但是,由于字典是可变,无法哈希,因此我们需要将其转换为不可变类型。...可变(mutable)对象: 可变象是指它值可以在创建之后改变对象。这意味着我们可以对可变对象进行添加、删除、更新操作,而其内存地址不会改变。...这意味着我们不能对不可变对象进行添加、删除、更新操作,如果需要修改不可变对象值,只能重新创建一个新对象。

44340

深度剖析Python字典和集合

数据类型 在Python词汇表,关于可类型定义有这样一段话: “如果一个对象是,那么在这个对象生命周期中,它值是不变,而且这个对象需要实现__hash__()方法。...另外可对象还要有__eq__()方法,这样才能跟其他键做比较。如果两个可象是相等,那么它们值一定是一样。” 重点是值不变!...OrderedDictpopitem方法默认删除并返回字典里最后一个元素(栈),如果加了参数OrderedDict(last=False),那么它会删除并返回第一个添加进度元素(队列)。...列表其实是一个稀疏数组(总是有空白元素数组称为稀疏数组),列表单元叫作表元,在dict列表,每个键值占用一个表元,每个表元有两个部分,一个是引用,另一个是引用,因为所有表元大小一致...如果两个对象在比较时候是相等,那么它们值必须相等,否则列表不能正常运行了: >>> a = 1 >>> b = 1 >>> a == b True >>> hash(a) 1 >>> hash

1.6K00

Python 常见数据结构整理

1、列表 列表可变,这是它区别于字符串和元组最重要特点,一句话概括即:列表可以修改,而字符串和元组不能 (1)、创建 list1=['hello','world'] print list1 list2...', 'l', 'o'] 2、元组 元组与列表一样,也是一种序列,唯一不同是元组不能修改(字符串其实也有这种特点)。...)或键值 del adict[key] 删除键key / del adict 删除整个字典 adict.pop(key) 删除键key并返回key对应 value值 映射类型操作符 a、字典不支持拼接和重复操作符...: 1.副本是忽略(成员不重复,去重) 集合主要用于检查成员资格,因此副本是忽略,如下示例所示,输出集合内容是一样。...frozenset类型用于代表不可变(可集合: set1=set([1]) set2=set([2]) set1.add(frozenset(set2)) print set1 输出: set

71220

Python 哈希(hash)

标准库里所有映射类型都是利用 dict 来实现因此它们有个共同限制,即只有可数据类型才能用作这些映射里键,本文记录Python hash 相关内容。...默认情况下,作为用户定义类实例象是可以 hasable 它们都比较 unequal (除了它们自己) ,它们 hash 值是它们 id ()派生出来。...如果是自定义 对象调用 hash() 的话,实际上运行是自定义 __hash__。如 果两个对象在比较时候是相等,那它们值必须相等,否 则列表不能正常运行了。...为了让值能够胜任列表索引这一角色,它们必须在索引空间 尽量分散开来。这意味着在最理想状况下,越是相似但不相等 对象,它们差别应该越大。...这个过程可能会发生新冲突,导致新列表中键次序变化。要注意是,上面提到这些变化是否会发生以及如何发生,都依赖于字典背后具体实现,因此不能很自信地说自己知道背后发生了什么。

2.2K20

Python基础(八) | 万字详解深浅拷贝、生成器、迭代器以及装饰器

hash("age") print(hash("age")) 第二步:根据计算值确定其在列表位置 极个别时候,值会发生冲突,则内部有相应解决冲突办法 第三步:在该位置上存入值 for...i in range(2, 2): print(i) 键值访问过程 d["age"] 第一步:计算要访问值 第二步:根据计算值,通过一定规则,确定其在列表位置 第三步...【例1】 删除列表特定元素 方法1 存在运算删除法 缺点:每次存在运算,都要从头列表进行遍历、查找、效率低 alist = ["d", "d", "d", "2", "2", "d" ,"d",...首先alist被删除元素时不断在变,但是索引s是按照顺序来因此会造成可能跨过某一元素现象,但是删除仍是按照列表头开始扫描顺序进行。...而是通过计算来回答问题 8.3.3 装饰器 1、需求提出 (1)需要对已开发上线程序添加某些功能 (2)不能对程序函数源代码进行修改 (3)不能改变程序函数调用方式 比如说,要统计每个函数运行时间

58020

.NET泛型集合

List移除元素需要复制所有的后续元素,因此其复杂度为O(n – k),其中k为移除元素索引。列表尾部移除要比从头部移除廉价得多。...数组元素角度来说是易变大小角度来说是固定它们显示实现了集合接口中所有的可变方法(如Add和Remove),并抛出NotSupportedException。...它们设计为在含有较少锁多线程并发操作时是安全。该命名空间下还包含三个用于并发操作集合进行分区类,但在此我们不讨论它们。...还是那个例子,这是完全根据心情去选一家店来问了 缺点: 这种方法建立起来hash表当冲突多时候数据容易堆聚在一起,这时候查找不友好; 删除结点不能简单地将被删结 点空间置为空,否则将截断在它之后填人列表同义词结点查找路径...因此在 用开放地址法处理冲突列表上执行删除操作,只能在被删结点上做删除标记,而不能真正删除结点 当空间满了,还要建立一个溢出表来存多出来元素。

14920

01To Begin数据类型与结构

单个字符并没有特殊类型,只是一个长度为一字符串 Python 字符串不能修改,因此,向字符串某个索引位置赋值会产生错误,但列表可以修改 索引也可以用负数,这种会右边开始数 除了索引,...,以便正确表示嵌套元组给元组一个单独元素赋值是不允许,当然你可以创建包含可变对象元组虽然元组可能看起来与列表很像,但它们通常是在不同场景使用,并且有着不同用途。...列表可变,并且列表元素一般是同种类型,并且通过迭代访问空元组可以直接空圆括号创建含有一个元素元组可以通过在这个元素后添加一个逗号来构建t=12345,54321,'hello!'...注意:要创建一个空集合你只能用 set() 而不能用 {},因为后者是创建一个空字典1.7、-字典>>> tel = {'jack': 4098, 'sape': 4139}>>> tel['guido...但如果元组直接或间接地包含了可变对象,那么它就不能用作关键字。列表不能用作关键字,因为列表可以通过索引、切片或 append() 和 extend() 之类方法来改变。

90310

Python字典与列表

列表是一种数据结构,它存储是键值(key-value)。 在列表,每个键值键必须是可,这是因为存储键值通过使用其键值进行索引。...每个小桶都由键值建立索引,小桶中装就是数据。 在下面的示例,演示用Python实现列表,从中可以理解散列表基本余力。...使用Python标准库hash()函数计算值,出现碰撞是在所难免。为此可以用扩大容器容量(即长度),从而降低出现碰撞概率,但是不能根本杜绝。 另外,容器数量扩大,也会浪费更多空间。...在Python基本知识,我们知道字典是“键-值集合 ,因此要定义字典,必须提供一个用逗号括起来大括号内键-值列表,如以下示例所示: >>> chess_players = { ......如果键不是可,Python会爆出TypeError异常。

4.7K10

删除重复值,不只Excel,Python pandas更行

因此,我们将探讨如何使用Python数据表删除重复,它超级简单、快速、灵活。 图1 准备用于演示数据框架 可以到完美Excel社群下载示例Excel电子表格以便于进行后续操作。...第3行和第4行包含相同用户名,但国家和城市不同。 删除重复值 根据你试图实现目标,我们可以使用不同方法删除重复。最常见两种情况是:整个表删除重复查找唯一值。...图4 这一次,我们输入了一个列名“用户姓名”,并告诉pandas保留最后一个重复值。现在pandas将在“用户姓名”检查重复,并相应地删除它们。...如果我们指定inplace=True,那么原始df将替换为新数据框架,并删除重复。 图5 在列表或数据表列查找唯一值 有时,我们希望在数据框架列表查找唯一值。...当我们pandas Series对象调用.unique()时,它将返回该唯一元素列表

5.9K30

轻松初探 Python 篇(五)—dict 和 set 知识汇总

通过一个函数来计算每一个 key 应该存放在内存位置,然后把 value 存储在内存这个位置上,等到需要取出 key 对应 value 时候,只需要通过函数计算出这个位置,然后直接去拿就行了...是不是有点像我们查字典步骤呢? 通过函数求出最终值就是对应哈希值(Hash),Java Map 最常用实现 HashMap 也是用类似的原理来设计。...当然,函数本身比较复杂,还要牵扯到冲突解决问题,简单来说,不同 key 通过函数求得内存位置可能是一样,这样就导致了冲突,解决这种冲突方法有很多,Python 设计者选择了开放定址法,...list' set set 和 dict 很像,不过 set 不存储键值,你可以把它想像成只存储 key dict,也可以理解成数学无序无重复集合这个概念。...所以在 set 是没有重复元素,也只能存放不可变元素。我们可以通过一个 list 来创建 set。同样,也是用大括号表示。

73490

【Python编程导论】第五章- 结构化类型、可变性与高阶函数

很多操作符可以创建可变类型对象,也可以将变量绑定到这种类型对象上。 但不可变类型象是不能修改,相比之下,list类型对象在创建完成后可以修改。...如果i省略,则i默认值为-1,删除并返回L最后一个元素。 L.sort():升序排列L元素。 L.reverse():翻转L元素顺序。...dicttype类型对象可以很容易地转换为列表,如list(months)。 并非所有对象都可以用作字典键:键必须是一个可类型对象。...所有Python内置可变类型都是可,而且所有Python内置可变类型都是不可。...del d[k]:d删除键k。 for k in d:遍历d键。

1.3K30

Python 自动化指南(繁琐工作自动化)第二版:四、列表

从技术上讲,for循环列表每一重复一次代码块。...因此,小写a排序,使得它出现在大写Z之后。...列表值是一种可变数据类型:它可以添加、删除或更改值。然而,一个字符串是不可变:它不能改变。...但是在所有这些复杂行为基础上,高级行为是一个相当简单程序。 我们可以用一列表来表示二维场。内部列表表示每一方块,并为活方块存储一个'#'字符串,为死方块存储一个' '空格字符串。...在本书后面,你会看到程序使用列表来做一些没有列表很难或者不可能做事情。 列表可变序列数据类型,这意味着它们内容可以改变。元组和字符串虽然也是序列数据类型,但它们是不可变不能更改。

1.4K20

Pandas图鉴(二):Series 和 Index

在内部,Series将数值存储在一个普通NumPy向量因此,它继承了它优点(紧凑内存布局,快速随机访问)和缺点(类型同质性,缓慢删除和插入)。...原理上讲,如下图所示: 一般来说,需要保持索引值唯一性。例如,在索引存在重复值时,查询速度提升并不会提升。...在Pandas,它被称为MultiIndex(第4部分),索引内每一都被称为level。 索引另一个重要特性是它是不可改变。与DataFrame普通相比,你不能就地修改它。...一旦在索引包含了,就不能再使用方便df.column_name符号了,而必须恢复到不太容易阅读df.index或者更通用df.loc[]。有了MultiIndex。...>>> len(df.compare(df)) == 0 True 添加、插入、删除 尽管系列对象应该是大小不可变,但有可能在原地追加、插入和删除元素,但所有这些操作都是: 缓慢,因为它们需要为整个对象重新分配内存并更新索引

21620
领券