详解python中dict与set的使用

python中类似于php的数组的结构有list,tuple,dict和set, 其中list, tuple和set的类似于php的索引数组, 而dict就类似于php的关联数组,
dict:

dict的结构表示了一种映射关系, 与php的关联数组类似, 比如要定义个用户信息如下:

name: yi_zhi_yu
sex: man
country: china

这个使用list,tuple和set都是不能直接表示出来的, 因为没有能够使用字符串做键值的结构,而dict就可以,如下

m = {“name”:”yi_zhi_yu”, “sex”:”man”, “country”: “china”} //注意这里是`{}`, 不是`[]`
print m[“name”] //yi_zhi_yu
print m[“sex”] //man
print m[“country”] //china

dict 的数值对象有个get方法, 让我们可以在获取指定key的时候可以指定默认值

dict 在查找(hash key)和插入(没有顺序要求)速度方面比较有优势,但内存消耗较大
而list则正好相反

set:

set 与 list 和 tuple 类似, 但set中的值是不会重复的
比如要定义学的课程,使用set定义:
定义如下:

classes = set([u”语文”, u”数学”, u”英文”]) //set 关键词, 括号中是个list
print classes //set([u’\u8bed\u6587′, u’\u6570\u5b66′, u’\u82f1\u6587′])

添加的方法是add

classes.add(u”数学”)

//不会有重复
print classes //set([u’\u8bed\u6587′, u’\u6570\u5b66′, u’\u82f1\u6587′])
classes.add(u”历史”)
print classes //set([u’\u8bed\u6587′, u’\u6570\u5b66′, u’\u5386\u53f2′, u’\u82f1\u6587′])

删除的方法是remove:

classes.remove(u”历史”)
print classes // set([u’\u8bed\u6587′, u’\u6570\u5b66′, u’\u82f1\u6587′])