来源:https://segmentfault.com/q/1010000002581747 方法一:直接遍历 速度快 for key in _dict: pass 方法二:iterkeys() 速度快 for _ in testDict.iterkeys(): pass 方法三:keys()  速度慢  因为keys()须要形成一个列表,构建一个列表对于一个大的dict开销是很大的. for _ in testDict.keys(): pass 时间对比: import timeit DICT…
Python的dict由hash实现,解决hash冲突的方法是二次探查法.hash值相同的元素会形成链表.所以dict在查找key时,首先获取hash值,直接得到链表的表头:而后在链表中查找等于key的值. 所以要使一个对象的实例能够作为dict的key值,一般需要实现__hash__和__eq__两个方法. 没有实现__eq__方法的类的实例总是不相等(引用总是不同) class A: def __hash__(self): return 2 a = A() b = A() d = {a:0}…
dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样.而list的查找速度随着元素增加而逐渐下降. 不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢. 由于dict是按 key 查找,所以,在一个dict中,key不能重复. dict的第二个特点就是存储的key-value序对是没有顺序的!这和list不一样: d = { 'Adam': 95, 'Lisa': 85, 'Ba…
遍历dict 由于dict也是一个集合,所以,遍历dict和遍历list类似,都可以通过 for 循环实现. 直接使用for循环可以遍历 dict 的 key: >>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } >>> for key in d: ... print key ... Lisa Adam Bart 由于通过 key 可以获取对应的 value,因此,在循环体内,可以获取到value的值.…
dict key-value集合. d = { ': 'a', ': 'b', ': 'c' } (一).获取集合长度:len(d) = 3(二).获取值: 方式一:d[key];例:d['1'] = 'a' 如果key不存在会报错keyError,可以用 if '1' in d: print (d['1']) 方式二: d.get(key)方法,当key不存在时返回None 例:d.get('1') (三).dist的特点 dist的第一个特点是查找速度快,无论dict有10个元素还是10万个…
字典  一.创建字典  方法①:  >>> dict1 = {}  >>> dict2 = {'name': 'earth', 'port': 80}  >>> dict1, dict2  ({}, {'port': 80, 'name': 'earth'})  方法②:从Python 2.2 版本起  >>> fdict = dict((['x', 1], ['y', 2]))  >>> fdict  {'y':…
什么是dict 我们已经知道,list 和 tuple 可以用来表示顺序集合,例如,班里同学的名字: ['Adam', 'Lisa', 'Bart'] 或者考试的成绩列表: [95, 85, 59] 但是,要根据名字找到对应的成绩,用两个 list 表示就不方便. 如果把名字和分数关联起来,组成类似的查找表: 'Adam' ==> 95 'Lisa' ==> 85 'Bart' ==> 59 给定一个名字,就可以直接查到分数. Python的 dict 就是专门干这件事的.用 dict …
======================遍历列表========================# 直接遍历list: for elem in list: pass # 通过索引获取 for i in range(len(list)): elem = list[i] pass # 基于enumerate()遍历 for i, elem in enumerate(list): pass # 基于iter()遍历 listIter = iter(list) while True: try: el…
javascript循环遍历数组输出key value用$.each方法肯定不行的 所以采用如下方法<pre> markers = []; markers[2]=3; markers[3]=7; for(var key in markers){ console.log( key ) console.log( markers[key] ) }</pre>…
字典dict 使用key来标注value的数据类型,key和value是一一对应的.在字典中key是唯一的,所以字典也是无序的. #定义一个字典 dict = { 'name' : 'sylar', 'age' : 18, 'post' : 'OPS', 'salary' : 80000 } ###常用操作和方法 #访问字典的数据,使用定义的key来获取 print(dict_test['name']) #修改字典 dict_test['name'] = 'Sylar' print(dict_t…