Python Hashtable的理解
一个对象当其生命周期内的hash值不发生改变,而且可以跟其他对象进行比较时,这个对象就是Hashtable的。两者Hashtable的对象只有具有相同的hash值时才能判断为相同的对象。
- python中的基本类型都是Hashtable,比如str,bytes,数字类型等;
- 用户自定义的类型默认情况下都是hashtable,因为他们的hash值就是他们的id()值;
- frozenset始终都是hashtable的,因为他们所有的项目都是被定义成hashtable的;
- 只有当元组内的所有项都是hashtalbe时,元祖才是hashtalbe.具体请参见下面的例子
if __name__ == '__main__':
tt = (1,2, (30, 40))
print(hash(tt)) tf = (1, 2, frozenset([30, 40]))
print(hash(tf)) tl = (1, 2, [30, 40])
print(hash(tl))
运行的结果如下:
8027212646858338501
-4118419923444501110
Traceback (most recent call last):
File "C:/Users/Administrator/PycharmProjects/collections/abc111.py", line 19, in <module>
print(hash(tl))
TypeError: unhashable type: 'list'
Python Hashtable的理解的更多相关文章
- python之总体理解
作为脚本,python具备了弱类型语言的灵活性,便捷性.这在日常的开发使用中能够大幅度的减轻开发人员的编码负担,开发者也能够将精力集中在程序的逻辑管理和总体构架设计上.一般而言,随着经验的积累,开发人 ...
- Python的多线程理解,转自虫师https://www.cnblogs.com/fnng/p/3670789.html
多线程和多进程是什么自行google补脑 对于python 多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂.所以,这里力图用简单的例子,让你对多线程有个初步的认识. 单线程 在好些年前的 ...
- 对python变量的理解
#!/usr/bin/python class Person: '''some words content or descriptions!''' name='luomingchuan' _age = ...
- python描述符理解
Python中的描述符是一个相对底层的概念 descriptor Any object which defines the methods get(), set(), or delete(). Whe ...
- 对hashmap,hashset,hashtable的理解
1.首先先理一下java的集合关系,Collection和Map接口是所有集合接口的根结点,其他集合都直接或者间接的实现了他们中的一个:collection下有:list(元素可重复)和set(不可重 ...
- python decorator的理解
一.decorator的作用 装饰器本质上是一个Python函数,可以让其他函数在不做任何代码变动的前提下增加额外功能. 装饰器的返回值也是一个函数对象.python里函数也是对象. 它经常用于有切面 ...
- 关于python的__name__理解
Python中,每个模块有个__name__属性,当模块是在自己文件下执行的,那么它的__name__属性是__main__,而当它被引入到别的模块中,那么在别的模块下(import模块名 可以引入一 ...
- python 赋值,交换值理解
python里的赋值都是引用,第一次赋值就是定义. 看下面两个交换值的例子: 1. >>> a,b,c = 1,2,3 >>> a = b >>> ...
- Python单元测试——深入理解unittest (转)
单元测试的重要性就不多说了,可恶的是Python中 有太多的单元测试框架和工具,什么unittest, testtools, subunit, coverage, testrepository, no ...
随机推荐
- eclipse 查看jdk源码
eclipse中引入jdk源码的设置: 设置: 1.点 "window"-> "Preferences" -> "Java" ...
- Oracle实例,具体运用
Oracle关键字的使用 使用insert 添加数据: INSERT INTO 表名 VALUES (加入对应的数); COMMIT; INSERT INTO p_emp VALUES('TO ...
- 【前端必备】一、HTML篇
1.文档类型是什么概念,起什么作用? <!DOCTYPE> 声明此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范. 该标签可声明三种 DTD 类型,分别表示严格版本 ...
- Codeforces Round #307 (Div. 2) E. GukiZ and GukiZiana(分块)
E. GukiZ and GukiZiana time limit per test 10 seconds memory limit per test 256 megabytes input stan ...
- python 定义二维数组
1. myList = [([0] * n) for i in range(m)],n是列,m是行 >>> array=[([0]*3) for i in range(4)] > ...
- nyoj 300 (矩阵快速幂)Kiki & Little Kiki 2
描述 There are n lights in a circle numbered from 1 to n. The left of light 1 is light n, and the left ...
- [USACO 2017 Dec Gold] Tutorial
Link: USACO 2017 Dec Gold 传送门 A: 为了保证复杂度明显是从终结点往回退 结果一开始全在想优化建边$dfs$……其实可以不用建边直接$multiset$找可行边跑$bfs$ ...
- AGC 018 A - Getting Difference
题面在这里! 天呐,我已经做了一天水题了mmp 养生最重要,恩. 首先发现最终序列里的元素肯定是 <= max 的,因为无论何时序列里都不会有负数,所以减的话不会变大(反向大只有>2*ma ...
- Codeforces 741B Arpa's weak amphitheater and Mehrdad's valuable Hoses
[题目链接] http://codeforces.com/problemset/problem/741/B [题目大意] 给出一张图,所有连通块构成分组,每个点有价值和代价, 要么选择整个连通块,要么 ...
- BZOJ 1123 [POI2008]BLO(Tarjan算法)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1123 [题目大意] Byteotia城市有n个towns,m条双向roads. 每条r ...