#coding=utf8
#字典由键和对应的值组成(键值对)--哈希表,字典元素也可以为空
dict1 = {'name':'kaly','age':20,'sex':'male'}
dict2 = {}
#键与值间需用冒号隔开,每一对键之间需要逗号作为分隔符,键与值的关系为一对多的
print dict1
#字典是没有顺序的,打印时会随机排序,若需访问字典元素则需通过键来进行访问
#>>>
#{'age': 20, 'name': 'kaly', 'sex': 'male'}
print dict1['age'] #输出age对应的值:20
#print dict1['aaa'] #返回KeyError: 'aaa',访问字典不存在的键则会报错
#修改增加字典元素 -- 直接修改存在的键所对应的值/增加不存在的键值对
dict1['age'] = 18
dict1['test'] = 'test'
print dict1 #{'test': 'test', 'age': 18, 'name': 'kaly', 'sex': 'male'}
#字典中同一个键出现多次,默认只取最后一个键对应的值
dict3 = {'str':'haha','str':'hello','str':'test','age':22}
print dict3 #{'age': 22, 'str': 'test'}
#删除字典元素和字典
del dict3['str'] #删除键位'str'的数据
print dict3 #{'age': 22}
del dict2 #删除整个字典
#print dict2 #NameError: name 'dict2' is not defined
dict3.clear() #清除dict3字典所有数据
print dict3 #{}
print '--------------------------------------'
#遍历字典元素 -- 在循环中,dict1的每个键对应的值被提取出来,赋予给key变量。
for key in dict1:
print dict1[key]
#字典常用的内置函数
print cmp(dict1,dict3) #大于返回1,等于返回0,小于返回-1,逐个键对比
print len(dict1) #返回dict1字典键的总数:4
print str(dict1) #{'test': 'test', 'age': 18, 'name': 'kaly', 'sex': 'male'}
print type(dict1) #返回字典类型<type 'dict'>