同列表和字符串一样,字典也有方法。
- clear 清空字典中的所有项。
我们可以把空字典赋给某一字典来清空它当中的项。也可以使用clear方法彻底清空字典。
x= {} y=x x[‘age‘]=‘25‘ x[‘gender‘]=‘male‘ print x x.clear() print x print y {‘gender‘: ‘male‘, ‘age‘: ‘25‘} {} {}
如果将 x.clear 改为 x={},则结果变为
{‘gender‘: ‘male‘, ‘age‘: ‘25‘} {} {‘gender‘: ‘male‘, ‘age‘: ‘25‘}
2. 浅复制和深复制
前者指modify copy的字典的某个值时,原始字典中该值也会改变,反之亦然。
x= {} x[‘age‘]=[‘25‘,‘26‘,‘28‘] #List x[‘gender‘]=‘male‘ #String y=x.copy() x[‘age‘].remove(‘25‘) y[‘age‘].remove(‘26‘) print x print y {‘gender‘: ‘male‘, ‘age‘: [‘28‘]} {‘gender‘: ‘male‘, ‘age‘: [‘28‘]}
如果使用深度复制deepcopy,原字典和拷贝字典间完全独立
from copy import deepcopy x= {} x[‘age‘]=[‘25‘,‘26‘,‘28‘] #List x[‘gender‘]=‘male‘ #String y=deepcopy(x) x[‘age‘].append(‘25‘) y[‘age‘].remove(‘26‘) print x print y {‘gender‘: ‘male‘, ‘age‘: [‘25‘, ‘26‘, ‘28‘, ‘25‘]} {‘gender‘: ‘male‘, ‘age‘: [‘25‘, ‘28‘]}
3. fromkeys 使用给定的keys创造一个字典,默认value为None
这里看看出了什么错误?
x= {}.fromkeys(‘name‘,‘gender‘) print x {‘a‘: ‘gender‘, ‘e‘: ‘gender‘, ‘m‘: ‘gender‘, ‘n‘: ‘gender‘}
正确形式为
x= {}.fromkeys([‘name‘,‘gender‘]) print x {‘gender‘: None, ‘name‘: None}
4. get 可访问一个字典中不存在的项
x= {} print x.get(‘age‘) None
可响应用户输入字典中没有的项,更加灵活
几个比较简单的方法:
5. has_key 用于检查字典中是否有指定键,也可用 in 实现。
6. pop 用于获得给定键的值并将这一项从字典删去。
info = { ‘Alice‘: { ‘phone‘:‘2342‘, ‘addr‘:‘taierzhuang rd‘}, ‘Bob‘:{ ‘phone‘:‘2242‘, ‘addr‘:‘jinqiao rd‘} } info.pop(‘Alice‘) print info {‘Bob‘: {‘phone‘: ‘2242‘, ‘addr‘: ‘jinqiao rd‘}}
7.setdefault用于添加键(可在键不存在的情况下添加键值,同get不一样的是它会改变原字典)
8.items & iteritems
items 以列表的形式返回字典中的项,iteritems返回一个迭代器
info = { ‘Alice‘: { ‘phone‘:‘2342‘, ‘addr‘:‘taierzhuang rd‘}, ‘Bob‘:{ ‘phone‘:‘2242‘, ‘addr‘:‘jinqiao rd‘} } print info print info.items() print info.iteritems() {‘Bob‘: {‘phone‘: ‘2242‘, ‘addr‘: ‘jinqiao rd‘}, ‘Alice‘: {‘phone‘: ‘2342‘, ‘addr‘: ‘taierzhuang rd‘}} [(‘Bob‘, {‘phone‘: ‘2242‘, ‘addr‘: ‘jinqiao rd‘}), (‘Alice‘, {‘phone‘: ‘2342‘, ‘addr‘: ‘taierzhuang rd‘})] <dictionary-itemiterator object at 0x10a200a48>
相同的,keys 和 iterkeys返回键,values和itervalues返回值。
9.update 利用一个字典的项更新另一个。
d={ ‘title‘:‘Python web site‘, ‘url‘:‘http://www.python.org‘, ‘changed‘:‘April 4 20:18 2013‘ } x={‘title‘:‘Python Language Website‘} print d.update(x)
注意此时输出None,不知道为什么,把上面最后一步分开写:
d.update(x) print d {‘url‘: ‘http://www.python.org‘, ‘changed‘: ‘April 4 20:18 2013‘, ‘title‘: ‘Python Language Website‘}
时间: 2024-10-16 13:49:35