python字典的学习1

来源:互联网 发布:网络十大神神兽 编辑:程序博客网 时间:2024/04/28 15:31
字典
python中有了一种叫做dictionary的数据类型,翻译过来就是“字典”,用dict表示。


>>> citys = ["suzhou", "tangshan", "beijing", "shanghai"]
>>> city_codes = ["0512", "0315", "011", "012"]


>>> print "{}:{}".format(city[0], city_codes[0])
suzhou : 0512


特别注意:在city_codes中,表示区号的元素没有用整数型,而是使用了字符串类型。
如果yoga整数,就是这样的:
>>> suzhou_code = 0512
>>> print suzhou_code
330
0512并没有被认为是一个八进制的数,用print打印的时候,将它转化为了十进制输出。


创建dict
方法1:


创建一个空的dict,这个空dict,可以在以后向里面加东西。
>>> mydict = {}
>>> mydict
{}


创建有内容的dict
>>> person = {"name":"qiwsir","site":"qiwsir.github.io","language":"python"}
>>> person
{'name':'qiwsir','site':'qiwsir.github.io','language':'python'}
"name":"qiwsir",有一个优雅的名字:键值对。前面的name叫做键(key),后面的qiwsir是前面的键对应的值(value)。在一个dict中,键是唯一的,不能重复。值则是对应于键,值可以重复。键值之间用(:)英文的冒号,每一对键值之间用英文的逗号(,)隔开。


>>> person['name2'] = "qiwsir"  #这是一种想dict中增加键值对的方法
>>> person
{'name2':'qiwsir','name':'qiwsir','site':'qiwsir.github.io','language':'python'}




>>> ad = { }
>>> id(ad)
3072770636L
>>> ad["name"] = "qiwsir"
>>> ad
{'name':'qiwsir'}
>>> id(ad)
3072770636L
实验表明,字典可以原地修改,即它是可变的。


方法2:
利用元组在建构字典,方法如下:
>>> name = (["first","Google"],["second","yahoo"])
>>> website = dict(name)
>>> website
{'second': 'Yahoo','first':'Google'}


或者用这样的方法:


>>> ad = dict(name = "qiwsir", age = 42)
>>> ad
{'age':42, 'name':'qiwsir'}


方法3:
这个方法,跟上面的不同在于使用fromkeys
>>> website = { }.fromkeys(("third","forth"),"facebook")
>>> website
{'forth':'facebook','third':'facebook'}


字典中的“键”,必须是不可变的数据类型;“值”可以是任意数据类型。
>>> dd = {(1,2):1}
>>> dd
{(1,2):1}
>>> dd = {[1,2]:1}
TypeError:








访问dict的值


dict数据类型是以键值对的形式存储数据的,所以,只要知道键,就能得到值。
本质上就是一种映射关系。


>>> person
{'name2':'qiwsir','name':'qiwsir','language':'python','site':'qiwsir.github.io'}
>>> person['name']
'qiwsir'
>>> person['language']
'python'




>>> city_code = {"suzhou":"0512","tangshan":"0315","beijing":"011","shanghai":"012"}
>>> print city_code["suzhou"]
0512




基本操作




len(d),返回字典(d)中的键值对的数量
d[key],返回字典(d)中的键(key)的值
d[key]=value,将值(value)赋给字典(d)中的键(key)
del d[key], 删除字典(d)的键(key)项(将该键值对删除)
key in d,检查字典(d)中是否含有键为key的项


下面进行一次演示


>>> city_code
{'suzhou':'0512','beijing':'011','shanghai':'012','tangshan':'0315'}
>>> len(city_code)
4
以city为操作对象,len(city_code)的值是4,表明有四组键值对,也可以说是四项。


>>> city_code["nanjing"] = "025"
>>> city_code
{'suzhou':'0512','beijing':'011','shanghai':'012','tangshan':'0315','nanjing':'025'}
向其增加一项


>>> city_code["beijing"] = "010"
>>> city_code
{'suzhou':'0512','beijing':'010','shanghai':'012','tangshan':'0315','nanjing':'025'}
可以这样修改,进一步说明字典的值是可变的。


>>> city_code["shanghai"]
'012'
>>> del city_code["shanghai"]
用del将那一项都删掉


>>> city_code["shanghai"]
keyError:'shanghai'
>>> "shanghai" in city_code
False
因为键是"shanghai"的那个键值对项已经删除了,随意不能找到,用in来看看,返回的是False


>>> city_code
{'suzhou':'0512','beijing':'010','tangshan':'0315','nanjing':'025'}
真的删除了。



1 0
原创粉丝点击