## dict和set的使用
[TOC]
* Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
* 和list比较,dict有以下几个特点:
1. 查找和插入的速度极快,不会随着key的增加而增加;
2. 需要占用大量的内存,内存浪费多。
* 而list相反:
1. 查找和插入的时间随着元素的增加而增加;
2. 占用空间小,浪费内存很少。
>[info] #### dict的使用
~~~
dd = {"name" : "wang", "age": 20}
print dd
print dd["name"] #打印key=name的值
print "name" in dd #用in判断name键是否存在,存在返回True
print dd.get("name") #获取name的值 ,键不存在返回: None
pirnt dd.get("ages", 18) #若ages键不存在则返回默认值 18
dd.pop("age") #删除age键,键不存在报错
//请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
key键必须是字符串、整数等都是不可变的,list的不行
~~~
>[info] #### set 的使用
* set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
* 要创建一个set,需要提供一个list作为输入集合:
~~~
s = set([1,2,3,4]) #创建一个set, 必须里面是一个list
s.add(5) #添加值
s.remove(4) #删除4元素 [1,2,3, 5]
~~~
* 做交集和并集
~~~
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
set([2, 3])
>>> s1 | s2
set([1, 2, 3, 4])
~~~
>[info] #### 列表排序
~~~
list = ["a", "d", "c"]
list.sort()
~~~
>[info] #### 字符串替换
~~~
a = "abc";
b = a.replace("a", "A")
print b # Abc
~~~