python 字典

来源:互联网 发布:什么是网络存储设备 编辑:程序博客网 时间:2024/05/01 16:05

本章:我们主要学习字典的操作符、定义、内建函数、内建方法、字典的键


1.映射类型

首先,我们来看一个字典的典型例子:
mydic={'zhao':1,'qian':2,'sun':3,'li':4}
字典是一个hash表,其中有键值和对应的value,字典的好处就是hash查找迅速,可以实现按键索引。

1)创建与赋值:

符号:mydic={'zhao':123}
工厂方法dict:zhao=dict((['x',1],['y',2]))
内建方法fromkeys:mydic={}.fromkeys(("x","y"),-1)
 |  dict() -> new empty dictionary
 |  dict(mapping) -> new dictionary initialized from a mapping object's
 |      (key, value) pairs
 |  dict(iterable) -> new dictionary initialized as if via:
 |      d = {}
 |      for k, v in iterable:
 |          d[k] = v
 |  dict(**kwargs) -> new dictionary initialized with the name=value pairs
 |      in the keyword argument list.  For example:  dict(one=1, two=2)
例子:
>>> zip(one,two)
[('ali', 1), ('huang', 2), ('li', 3), ('wali', 4)]
>>> three=zip(one,two)
>>> dict(three)
{'li': 3, 'wali': 4, 'huang': 2, 'ali': 1}
注意:dict能接受多种参数:空、iterable、**kwargs等

2)访问字典中的值:

方法keys();
for key in mydic.keys():
print 'keys=%s,values=%s' % (key,mydic[key])
迭代器:
for key in mydic:
print 'keys=%s,values=%s' % (key,mydic[key])


3)更新字典

键值模式:mydic[add]="wang"
内建方法:mydic.update(anotherdic)

4)删除字典元素和字典

删除字典:del mydic
删除元素:del mydic['zhao']

2.映射类型操作符

首先,映射类型不支持拼接,序列类型可以。

1)比较操作符:> < =
比较顺序——字典的大小、键、值
2)查找操作符[]
3)成员关系操作符:in,not in

3.映射类型的工厂函数和内建函数


1)标准类型函数

type、str、cmp


2)映射类型相关函数

dict、len、hash

3)映射类型内建方法

keys(),values(),items(),sorted()
Note:sorted(mydic) not mydic.sorted()
get():similar to [],but can  accept keys that donot exist.

Note:keys(),values,items return value is seq, which is hard to handle when the seq is very large,so we use iteritems(),itervalues(),iteritems() for instead.

注意:sort并不是字典的方法,而是列表的方法:mydic.keys().sort()实际上是调用了列表的内建函数;
现在,我们拥有一个针对迭代子的内建函数,sorted(),将对字典的键进行sort,然后返回一个列表


4.字典的健


4.1不允许一个键对应多个值

如果存在冲突,那么将执行最近赋值原则
>>> mydic={'huang':11,'huang':11.5}
>>> mydic

{'huang': 11.5}


4.2键必须是可hash的

所有不可变的类型都是可hash的,因此都可以作为字典的键.另外,相同的数字表示相同的键,比如1和1.0.



0 0
原创粉丝点击