使用字典
>>> phonebook = {\'Alice\': \'2341\', \'Betch\': \'9102\', \'Cecil\': \'3258\'}
字典中,键和值用\':\'分隔,项之间用\',\'分隔,整个字典是由{}包含
>>> newnote = {} #声明一个空的字典
>>> items = [(\'name\', \'Bob\'), (\'age\', 42)]
>>> d = dict(items)
>>> d #{\'name\': \'Bob\', \'age\': 42}
>>> d[\'name\'] #Bob
>>> d = dict(name=\'Gumy\', age=42)
>>> d #{\'name\': \'Bob\', \'age\': 42}
>>> d[\'name\'] #Bob
>>> d = dict(name=\'Gumy\', age=42)
>>> len(d) #返回d中项(键-值对)的数量
>>> d[\'name\'] #返回关联到name的值
>>> d[\'phonenumber\'] = \'13134545\' #将值\'13134545\'关联到键\'phonenumber\'上
>>> del d[\'age\'] #删除键为age的值
>>> \'name\' in d #判断d中是否含有键为k的项,存在true,不存在false
>>> d [\'name\'] = \'Bob\'
>>> return_value = d.clear() #清空d
>>> d #{}
>>> rerturn_value #无返回值,none
对比x.clear()和x={}
--x={}
>>> x[\'value\'] = 42
>>> y = x
>>> x = {}
>>> x #{}
>>> y #{\'value\': 42}
--x.clear()
>>> x[\'value\'] = 42
>>> y = x
>>> x.clear()
>>> x #{}
>>> y #{}
注:x={}是通过关联新的空的容器达到清空的目的,而x.clear()会把原始字典清空,
于是y也为{}
>>> x = {\'username\': \'admin\', \'machines\': [\'foo\', \'bar\', \'baz\']}
>>> y = x.copy()
>>> y[\'username\'] = \'Bob\'
>>> y[\'machines\'].remove(\'bar\')
>>> y #{\'username\': \'Bob\', \'machines\': [\'foo\', \'baz\']}
>>> x #{\'username\': \'admin\', \'machines\': [\'foo\', \'baz\']}
>>> from copy import deepcopy
>>> x = {\'username\': \'admin\', \'machines\': [\'foo\', \'bar\', \'baz\']}
>>> y = deepcopy(x)
>>> y[\'username\'] = \'Bob\'
>>> y[\'machines\'].remove(\'bar\')
>>> y #{\'username\': \'Bob\', \'machines\': [\'foo\', \'baz\']}
>>> x #{\'username\': \'admin\', \'machines\': [\'foo\', \'bar\', baz\']}
>>> d = {}
>>> d.fromkeys([\'name\', \'age\']) #将给定的键插入字典d,初始化为none
>>> d #没有返回值,{}
>>> d.fromkeys([\'phone\', \'address\'], [\'unknown\']) #将给定的键插入字典d,初始化为unknown
>>> d #没有返回值,{}
>>> d = {}
>>> d[\'name\'] #报错
>>> d.get(\'name\') #返回none,不报错
>>> d[\'phone\'] = 42
>>> d.get(\'name\', \'Bob\') #\'name\'为none,故而输出为\'Bob\'
>>> d.get(\'phone\', 12) #\'phone\'为42,故而输出为42
>>> d = {}
>>> d.has_key(\'name\') #是否含有键\'name\',false
>>> d[\'name\'] = \'Bob\'
>>> d.has_key(\'name\') #是否含有键\'name\',true
注:相当于\'name\' in d,python3.0以后没有这个函数了
>>> d = {\'title\': \'sun\', \'content\': \'good sunshine\'}
>>> d.items() #将字典项以列表的形式返回,(\'content\', \'good sunshine\'), (\'title\', \'sun\')]
>>> d = {\'title\': \'sun\', \'content\': \'good sunshine\'}
>>> d.iteritems() #
>>> list(d.iteritems()) #[(\'content\', \'good sunshine\'), (\'title\', \'sun)]
注:大多数情况下,iteritems比items高效,尤其是想要迭代结果的时候
keys将字典中的键以列表的形式返回,而iterkeys则返回针对键的迭代器
>>> d = {\'x\': 1, \'y\', 2}
>>> d.pop(\'x\') #弹出对应键的值,1
>>> d #{\'y\', 2}
>>> d = setdefault(\'name\', \'Bob\')
>>> d #初始值,\'Bob\'
>>> d[\'name\'] = \'Ada\'
>>> d = setdefault(\'name\', \'Bob\')
>>> d #赋值,\'Ada\'
>>> d = {}
>>> print d.setdefault(\'name\') #none
注:由此可以看出setdefault与get的方法很相似,类比学习
>>> d = {\'title\': \"C Programming\", \'url\': \'none\'}
>>> x = {\'title\': \'Python Tutorial\', \'content\': \'tuple\'}
>>> d.update(x)
>>> d #{\'title\': \'Python\', \'url\': \'none\', \'content\': \'tuple\'}
注:update是更新重复项,添加新增项
>>> d = {1: 1, 2: 2, 3: 3, 4: 1}
>>> d.values() #[1, 2, 3, 1]
注:与key和iterkeys几乎都是相同的,不同的是,values可以返回相同的值
上一篇:字符串
下一篇:python 普通验证码识别程序