字典和列表的区别 是无序的 ,字典的取值是通过Key值来达到的
>>> a = {'111':[1,2,3,4]}
>>> a
{'111': [1, 2, 3, 4]}
>>> for i in a:
print i
111 ###取出的值是键值 ‘111’
>>> a['111']
[1, 2, 3, 4]
>>> a['111'][0]
1
>>> a['111'][2]
3
>>>
>>> a['111'][2] = 'ggg'
>>> a
{'111': [1, 2, 'ggg', 4]}
>>> ### 通过键值 下标来替换
>>> a['111'] = 'hehe'
>>> a
{'111': 'hehe'}
>>> ### 一个键值对应 :后面的值
>>> a['222'] = 'hahahah'
>>> a
{'111': 'hehe', '222': 'hahahah'} ###当一个键值 不存在的时候 默认字典会增加其值 键值存在内容就会替换
>>> a['333'] = 'gagaga'
>>> a
{'111': 'hehe', '222': 'hahahah', '333': 'gagaga'}
>>> a
{'111': 'hehe', '222': 'hahahah', '333': 'gagaga'}
>>> print a
{'111': 'hehe', '222': 'hahahah', '333': 'gagaga'}
>>> for i in a:
print i
111
222
333
>>>
删除
>>> del a['222']
>>> a
{'111': 'hehe', '333': 'gagaga'}
>>> ### del 是python 内置的机构 通用型
>>> a.pop('111')
'hehe'
>>> a
{'333': 'gagaga'}
>>> ###pop() 里面输入需要删除的键值 不可不填写 字典本身是无序的 popitem()不填写键值就随意删了,不建议用
查找
上面查找通过键值来 查询了 但是当键值不存在的时候 直接查找会报错。。
除非你很肯定你要找的键值就在字典里。
试探性搜索 用get()
>>> a
{'333': 'gagaga'}
>>> print a.get('555')
None
>>> ### 当试探搜索没有的情况下会返回None 而不是报错毁坏程序
>>> a.has_key('555')
False ###在python 2.x里是有这个方法来检测键值是否存在 3.X里没有了
>>> '555' in a
False
>>> ### 3.x版本 可以用这种方式 结果是一样的
打印字典里的所有的值 ,,,键
>>> a
{'555': 'hahhaa', '9999': 'nnnnnn', '333': 'gagaga'}
>>>
>>>
>>> print a.values()
['hahhaa', 'nnnnnn', 'gagaga']
>>>
>>> values()
>>> a.keys()
['555', '9999', '333']
>>> keys()
增加创建
当需要创建一个 字典时候 创建的键 已经存在, 那么不会被覆盖 而是增加
Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值
setdefault()
update()
>>> a
{'555': 'hahhaa', '9999': 'nnnnnn', '333': 'gagaga'}
>>>
>>> b = {'555':'ggg',1:2,8:88}
>>> a.update(b)
>>> print a
{'9999': 'nnnnnn', 1: 2, 8: 88, '555': 'ggg', '333': 'gagaga'}
>>> ## update(其他需要融合的字典) 当字典融合的话 键值相同的覆盖 新的键值 就增加
坑 。。。。。。。。。。。。。。。。。。。。。。
>>> print a.items()
[('9999', 'nnnnnn'), (1, 2), (8, 88), ('555', 'ggg'), ('333', 'gagaga')]
>>> ###items() 直接把字典变成列表
>>> d = dict.fromkeys([1,2,3],[11,{'aa':'bb'},'c'])
>>> d
{1: [11, {'aa': 'bb'}, 'c'], 2: [11, {'aa': 'bb'}, 'c'], 3: [11, {'aa': 'bb'}, 'c']}
>>> ###fromkeys(['创建字典的键'],[‘创建字典的值’])
>>> d[2][1]['aa'] = 'kkkkk' ###多层嵌套字典中 是字典就按字典取值 是列表就按列表取值 各取所需
>>> d
{1: [11, {'aa': 'kkkkk'}, 'c'], 2: [11, {'aa': 'kkkkk'}, 'c'], 3: [11, {'aa': 'kkkkk'}, 'c']}
>>> ###当修改深层次的值 时候 这种就需要注意 所有值都会改变
最好的 字典循环
>>> a
{'9999': 'nnnnnn', 1: 2, 8: 88, '555': 'ggg', '333': 'gagaga'}
>>>
>>>
>>>
>>>
>>> for i in a:
print i,a[i]
9999 nnnnnn
1 2
8 88
555 ggg
333 gagaga
>>>
以下知道就行不建议使用-----------------------------------------------------------------------------------------
>>> for d,j in a.items():
print d,j
9999 nnnnnn
1 2
8 88
555 ggg
333 gagaga
>>> ### 这种首先 让字典变成列表 然后通过列表去索引 但字典容量 上千万 那么转换过程就非常可怕了。。