ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python-7-字典方法

2019-05-03 18:42:55  阅读:273  来源: 互联网

标签:None name spam Python dict 方法 字典


clear 删除所有字典项 >>> d = {} >>> d['name'] = 'Gumby' >>> d['age'] = 42 >>> d {'age': 42, 'name': 'Gumby'} >>> d.clear() >>> d {} 下面是第一个场景: >>> x = {} >>> y = x >>> x['key'] = 'value' >>> y {'key': 'value'} >>> x = {} 这里只是将x关联到一个新的空间,并不修改原来的空间 >>> y {'key': 'value'} 下面是第二个场景: >>> x = {} >>> y = x >>> x['key'] = 'value' >>> y {'key': 'value'} >>> x.clear()这里修改的是原来的空间 >>> y {}   copy 返回一个与原字典相同的新字典 >>> x = {'username': 'admin', 'machines': ['foo', 'bar', 'baz']} >>> y = x.copy() >>> y['username'] = 'mlh' >>> y['machines'].remove('bar') >>> y {'username': 'mlh', 'machines': ['foo', 'baz']} >>> x {'username': 'admin', 'machines': ['foo', 'baz']} 此方法的赋值为浅复制。替换副本中的值时(新值为新空间),原件不受影响。如果修改副本中的值(原地修改),原件也发生变化,因为原件指向的也是被修改的值。 为避免这种问题,一种办法是执行深复制,可使用copy中的deepcopy >>> from copy import deepcopy >>> d = {} >>> d['names'] = ['Alfred', 'Bertrand'] >>> c = d.copy() >>> dc = deepcopy(d) >>> d['names'].append('Clive') >>> c {'names': ['Alfred', 'Bertrand', 'Clive']} >>> dc {'names': ['Alfred', 'Bertrand']}   fromkeys 创建一个新字典,其中包含指定的键,每个键对应的值都是None >>> {}.fromkeys(['name', 'age']) {'age': None, 'name': None} 也可提供特定的值 >>> dict.fromkeys(['name', 'age'], '(unknown)') {'age': '(unknown)', 'name': '(unknown)'}   get 如果访问了字典中没有的项,将引发错误,而get不会 >>> d = {} >>> print(d['name']) Traceback (most recent call last): File "<stdin>", line 1, in ? KeyError: 'name' >>> print(d.get('name')) None 在没有时也可以返回其它指定值 >>> d.get('name', 'N/A') 'N/A' 如果有要找的键,get与普通字典查找相同 >>> d['name'] = 'Eric' >>> d.get('name') 'Eric'   items 返回一个包含所有字典项的列表,其中每个元素都为(key, value)的形式。字典项在列表中的排列顺序不确定 >>> d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0} >>> d.items() dict_items([('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python Web Site')]) 返回值属于一种名为字典视图的特殊类型 还可确定其长度以及对其执行成员资格检查 >>> it = d.items() >>> len(it) 3 >>> ('spam', 0) in it True 视图的一个优点是不复制,它们始终是底层字典的反映,即便你修改了底层字典亦如此。 >>> d['spam'] = 1 >>> ('spam', 0) in it False >>> d['spam'] = 0 >>> ('spam', 0) in it True (永不复制,只是关联) 如果你想将字典项复制到列表中,可以这样: >>> list(d.items()) [('spam', 0), ('title', 'Python Web Site'), ('url', 'http://www.python.org')]   keys 返回一个字典视图,包含字典中所有的键 >>> dict = {'Name': 'Runoob', 'Age': 7} >>> dict.keys() dict_keys(['Name', 'Age']) >>> list(dict.keys()) # 转换为列表 ['Name', 'Age']   pop 获取指定键的值并删除指定键值对 >>> d = {'x': 1, 'y': 2} >>> d.pop('x') 1 >>> d {'y': 2}   popitem 随机弹出一个字典项,因为字典项的顺序是不确定的   setdefault >>> d = {} >>> d.setdefault('name', 'N/A') 'N/A' >>> d {'name': 'N/A'} >>> d['name'] = 'Gumby' >>> d.setdefault('name', 'N/A') 'Gumby' >>> d {'name': 'Gumby'} 指定的键不存在时,返回指定值并更新字典。存在就返回其值,字典不变 如果没有指定值,默认为None >>> d = {} >>> print(d.setdefault('name')) None >>> d {'name': None}   update 使用一个字典来更新另一个字典 >>> d = { ... 'title': 'Python Web Site', ... 'url': 'http://www.python.org', ... 'changed': 'Mar 14 22:09:15 MET 2016' ... } >>> x = {'title': 'Python Language Website'} >>> d.update(x) >>> d {'url': 'http://www.python.org', 'changed': 'Mar 14 22:09:15 MET 2016', 'title': 'Python Language Website'}   values 返回字典中的值组成的字典视图 >>> d = {} >>> d[1] = 1 >>> d[2] = 2 >>> d[3] = 3 >>> d[4] = 1 >>> d.values() dict_values([1, 2, 3, 1])            

标签:None,name,spam,Python,dict,方法,字典
来源: https://www.cnblogs.com/swefii/p/10805973.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有