自学python系列13:映像,集合类型-映像

1.1映射类型:字典

映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的关系。
1.1.1如何创建字典和给字典赋值
>>> dict1={}
>>> dict2={'name':'earth','port':80}
>>> dict1,dict2
({}, {'name': 'earth', 'port': 80})
也可以用dict()工厂方法来创建字典
>>> fdict=dict((['x',1],['y',2]))
>>> fdict
{'y': 2, 'x': 1}
1.1.2如何访问字典中的值
>>> for key in dict2.keys():
     print 'key=%s,value=%s' %(key,dict2[key])

    
key=name,value=earth
key=port,value=80
要得到字典中某个元素的值,可以用字典键加上中括号来得到
>>> dict2['name']
'earth'
 
若我们想访问一个字典的一个数据元素,而它在这个字典没有对应的键,则会产生一个错误:
>>> dict2['sever']

Traceback (most recent call last):
  File "<pyshell#87>", line 1, in <module>
    dict2['sever']
KeyError: 'sever'
 
检查某个键的方法:1.字典的has_key()方法2.in或not in操作符
 
一个字典混用数字和字符串,并逐一添加每个键-值对
>>> dict3={}
>>> dict3[1]='abc'
>>> dict3['1']=3.14
>>> dict3
{'1': 3.14, 1: 'abc'}
 
1.1.3如何更新字典
>>> dict2['name']='a'
>>> dict2
{'name': 'a', 'port': 80}
1.1.4如何删除字典元素和字典
>>> del dict2['name']
>>> dict2
{'port': 80}
>>> del dict2
 
1.2映射类型操作符
1.2.1标准类型操作符
<,=,>
1.2.2映射类型操作符
1.2.2.1字典键查找符
1.2.2.2成员关系操作in,not in
 
1.3映射类型的内建函数和工厂函数
1.3.1标准类型函数type(),str(),cmp()
type()对一个字典调用该方法,会返回字典类型
字典的比较算法:字典的大小,然后是键,最后是值。
1.比较字典长度
如果dict1比dict2场,cmp()返回正值;dict2比dict1长,则返回负值。
2.比较字典的键
若字典的长度相同,就按字典的键比较:键比较的顺序和keys()方法返回键的顺序相同。这时
3.比较字典的值
若两个字典的长度相同,且键匹配。则用每个相同的键进行比较,dict1和比dict2相同的键对应的值大,cmp()会返回正值
4.完全匹配 
return 0
 
1.2.2映射类型相关的函数
dict()
该函数用来创建字典。
>>> dict([['x',1],['y',2]])
{'y': 2, 'x': 1}
>>> dict(x=1,y=2)
{'y': 2, 'x': 1}
>>> dict8=dict(x=1,y=2)
>>> dict8
{'y': 2, 'x': 1}
copy()
>>> dict9=dict8.copy()
>>> dict9
{'y': 2, 'x': 1}
len()测试某字典的键值对的数量
>>> len(dict9)
2
hash()
可以判断某个对象是否可以做一个字典的键。将一个对象作为参数传递给hash(),会返回这个对象的哈希值
 
1.4映射类型内建方法
基本的字典方法关注键和值
>>> dict8.keys()
['y', 'x']
>>> dict8.values()
[2, 1]
update()
将一个字典的内容添加到另一个字典中。字典中原有的键如果和新添加的重复,那么重复键所对应的值被新建对应的值覆盖。
>>> dict2={'a':1,'b':2}
>>> dict2
{'a': 1, 'b': 2}
>>> dict3={'a':2}
>>> dict2.update(dict3)
>>> dict2
{'a': 2, 'b': 2}
 
copy()复制
>>> dict4=dict2.copy()
>>> dict4
{'a': 2, 'b': 2}
get()方法和键查找操作符([])相似,不同的是它允许你不存在的键提供默认值。
>>> dict4.get('a')
2
>>> type(dict4.get('xxx'))
<type 'NoneType'>
setdefault():检查字典是否有某键
items()
>>> dict4.items()
[('a', 2), ('b', 2)]
setdefault()
>>> dict4.setdefault('a',3)
2
 
1.5字典的键
1.5.1 不允许一个键对应多个值
当有键发生冲突,取最近的赋值。
 
1.5.2
键必须是可哈希的

 

posted @ 2014-12-23 21:38  Mr.Dantes  阅读(180)  评论(0编辑  收藏  举报