#coding=utf-8
'''
Created on 2014-11-12
@author: kite
'''
if __name__ == '__main__':
#创建字典
#创建一个空的字典
dict1={}
#用{key:value,key:value}的形式创建字典???
dict1={'name':'jack','age':18}
#使用一个工厂方法,传入一个元素是列表的元组作为参数
fdict = dict((['x', 1], ['y', 2]))
print dict1 #{'age': 18, 'name': 'jack'}
print dict1['name']
#内建方法fromkeys() 创建只有key没有value的字典。 来创建一个"默认"字典, 字典中元素具有相同的值 (如果没有给出, 默认为None)
ddict = {}.fromkeys(('x', 'y'), -1)
print ddict #{'y': -1, 'x': -1}
dict2={}.fromkeys(('tee','tes'))
print dict2 #{'tes': None, 'tee': None}
#访问字典中的元素
#for key in dict1.keys(): #下面的和此句效果相同
for key in dict1:
print 'key=%s,value=%s'%(key,dict1[key])
#更新,及往字典中添加值
#同样键不存在是新添加数据,键存在就是修改数据
dict1={'name':'jack','age':18}
dict1['name']='zhangsan' # name键已经存在,为其赋值即使修改vale
print dict1 #{'age': 18, 'name': 'zhangsan'}
dict1['address']='Beijing Haidian' #address 键不存在,为其赋值即使添加
print dict1 #{'age': 18, 'address': 'Beijing Haidian', 'name': 'zhangsan'}
#删除字典中的值 。clear del
dict3={'name':'www','age':8,'address':'beijing'}
# del dict[key] 删除键为“name”的条目
del dict3['name']
print dict3 #{'age': 8, 'address': 'beijing'}
#dict.clear() 删除所有的条目,即清空
dict3.clear() #
print dict3 #{}
#del dict删除整个字典
del dict3
#print dict3 #此时打印,会报错,提示name 'dict3' is not defined
#dict3.pop('age') 删除并返回键为“age”的条目
dict3={'name':'www','age':8,'address':'beijing'}
print dict3.pop('age') #8
print dict3 #{'name': 'www', 'address': 'beijing'}
dict1={'name':'www','age':8,'address':'beijing'}
#判定其是否存在某个键值对,可以使用has_key()或 in 、 not in 操作符
print dict1.has_key('address') #True
print dict1.has_key('color') #False
print 'address' in dict1 #True
print 'address' not in dict1 #False
print len(dict1) #3
print dict1['address']#beijing
#dict.copy() 浅copy
d2=dict1.copy()
print d2 #{'age': 8, 'name': 'www', 'address': 'beijing'}
print dict1.items() #[('age',
, ('name', 'www'), ('address', 'beijing')]
print dict1.keys() #['age', 'name', 'address']
print dict1.values() #[8, 'www', 'beijing']
#a.get(k[, x]) 从字典a中取出键为k的值,如果没有,则返回x
print dict1.get('name1','zzz') #zzz