`
yangjizhong24
  • 浏览: 399170 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Python-字典常用方法

阅读更多

ab = {       'Swaroop'   : 'swaroopch@byteofpython.info',
             'Larry'     : 'larry@wall.org',
             'Matsumoto' : 'matz@ruby-lang.org',
             'Spammer'   : 'spammer@hotmail.com'
     }

print "Swaroop's address is %s" % ab['Swaroop']

# Adding a key/value pair
ab['Guido'] = 'guido@python.org'

# Deleting a key/value pair
del ab['Spammer']

 

 

------------------------清除------------------------
clear()方法,将字典所有内容清除:
>>> d = {'age' : 12, 'name' : 'bob'}
>>> d
{'age': 12, 'name': 'bob'}
>>> d.clear()
>>> d
{}

有人可能会问为什么不直接d={}?
看下面的例子:
>>> d = {'age' : 12, 'name' : 'bob'}
>>> x = d
>>> d = {}
>>> x
{'age': 12, 'name': 'bob'}

再看下面:
>>> d = {'age' : 12, 'name' : 'bob'}
>>> x = d
>>> d.clear()
>>> x
{}

所以如果要真正清除一个字典要用clear

------------------------复制------------------------
>>> d = {'age' : 12, 'name' : 'bob'}
>>> y = d.copy()
>>> y['age'] = 32
>>> d
{'age': 12, 'name': 'bob'}
>>> y
{'age': 32, 'name': 'bob'}
复制后 y 的修改与 d 无关
但如果一个字典中有引用类型,如list,复制只会复制其引用而不会复制其值:
>>> d = {'names': ['bob', 'sam']}
>>> y = d.copy()
>>> y['names'][0] = 'jack'
>>> y
{'names': ['jack', 'sam']}
>>> d
{'names': ['jack', 'sam']}
如果要克服这个困难,那就必须用“深复制“:
>>> from copy import deepcopy
>>> d = {'names': ['bob', 'sam']}
>>> y = deepcopy(d)
>>> y['names'][0] = 'jack'
>>> d
{'names': ['bob', 'sam']}
>>> y
{'names': ['jack', 'sam']}

------------------------get------------------------
先看一个例子:
>>> d = {}
>>> d['name']
Traceback (most recent call last):
 

File "<stdin>", line 1, in <module>
KeyError: 'name'
>>> print d.get('name')
None
>>> d.get('name', 'N/A')
'N/A'
如果用索引直接访问一个不存在的值,Python会报错,但是如果用get方法会返回一个默认值,通过传入第二个参数来自定义一个默认值

------------------------键是否存在?------------------------
有两种方法来查询:
>>> d = {'age' : 12, 'name' : 'bob'}
>>> 'age' in d
True
>>> d.has_key('age')
True
可以用in关键字也可以通过has_key方法

------------------------键和值------------------------
将键、值、键值转换成List
>>> d = {'age' : 12, 'name' : 'bob'}
>>> d.keys()
['age', 'name']
>>> d.values()
[12, 'bob']
>>> d.items()
[('age', 12), ('name', 'bob')]

------------------------设默认值------------------------
当你要确保一个字典中确保有某个键时,可以用setdefault:
>>> d = {}
>>> d.setdefault('name', 'N/A')
'N/A'
>>> d
{'name': 'N/A'}
>>> d['name'] = 'bob'
>>> d.setdefault('name', 'N/A')
'bob'
>>> d
{'name': 'bob'}
setdefault和get十分类似,都返回查询的值,但是setdefault将默认值加入字典中。
===========================================================
字典交集:
字典键的合并:
some_dict = { 'zope':'zzz', 'python':'rocks' } 
another_dict = { 'python':'rocks', 'perl':'$' } 

intersect = [] 
for item in some_dict.keys( ): 
    if another_dict.has_key(item): 
        intersect.append(item)
        
def union_keys(some_dict, another_dict): 
    temp_dict = some_dict.copy( ) 
    temp_dict.update(another_dict) 
    return temp_dict.keys( )
#1
print "Intersects:", intersect
# 2 faster
print "Intersects:", [k for k in some_dict if k in another_dict]
 
分享到:
评论

相关推荐

    Python-python常用方法utils

    3. **字典操作**:字典是键值对的集合,常用方法有`keys()`获取所有键,`values()`获取所有值,`items()`获取键值对,`get()`安全访问元素,`update()`更新字典等。 4. **条件语句和循环**:`if...else...`用于条件...

    Python-python常用方法utils1.zip

    在这个名为"Python-python常用方法utils1.zip"的压缩包中,我们可以预想它可能包含了Python编程中的一些常见功能和便捷方法。虽然具体的文件内容没有提供,但根据描述,我们可以推测这个压缩包可能是为了分享或学习...

    pythonamd64python-3.8.3-amd64安装包

    1. **性能提升**:相比早期版本,Python 3.8 在多个方面进行了优化,如更快的字典操作和更好的垃圾回收机制。 2. **新特性**: - 引入了新的赋值表达式(也称为“海象运算符”)`:=`,允许在表达式内部进行变量赋值...

    python-3.9.0-amd64

    - 安装过程中还会询问是否安装Python的开发工具,如pip(包管理器)、IDLE(集成开发环境)等,这些是进行Python开发的常用工具。 - 安装完成后,可以通过在命令行输入`python --version`来验证Python是否正确安装...

    python教程-03-字典常用操作之新增.ev4.rar

    在Python编程语言中,字典(Dictionary)是一种非常重要的数据...通过观看"python教程-03-字典常用操作之新增.ev4.mp4"视频教程,你将能更直观地学习和掌握这些知识,加深对Python字典的理解,从而提升你的编程能力。

    python-3.9.12-amd64.exe加速下载

    为了解决这个问题,你可以尝试以下几种方法来加速Python的下载: 1. **使用镜像站点**:许多国家和地区的教育机构或云服务商提供了Python的镜像站点,这些站点通常离用户更近,因此下载速度更快。查找并选择一个离...

    python-3.7.7-amd64

    Python 3.7.7是Python编程语言的一个稳定版本,专为AMD64(也称为x86_64)架构设计,这是64位计算机系统最常用的处理器架构。这个压缩包包含了Python 3.7.7的所有核心组件和必要的库,以便在支持AMD64的计算机上运行...

    Python-100-Days-master.zip

    2. **列表、元组、字典与集合**:这四类数据结构是Python中常用的容器,它们各自有不同的特点和用途。列表是最常用的数据结构,支持动态添加和删除元素;元组是不可变的列表;字典则是一种键值对的映射关系;集合...

    python学习教程-05-字典常用操作之修改.ev4.rar

    在学习这些知识点时,结合"python学习教程--05-字典常用操作之修改.ev4.mp4"的视频教程,通过实践操作和实例练习,将能更深入理解和掌握Python字典的使用,从而提升你的编程技能。记得多动手实践,理论结合实际,...

    python-3.9.1-amd64.zip

    7. **标准库和第三方库**:熟悉常用的Python标准库,如os、sys、numpy、pandas等,并了解如何利用PyPI(Python Package Index)安装和使用第三方库。 Python 3.9.1的文档资源非常丰富,官网提供详尽的文档和教程,...

    python学习教程-06-字典常用操作之查找.ev4.rar

    本教程“python学习教程-06-字典常用操作之查找”将深入探讨Python字典的查找方法,帮助你更好地理解和运用这一强大的工具。 首先,字典的查找操作主要通过键(key)来完成。在Python中,你可以使用索引符号`[]`来...

    安装包:python-3.8.2-amd64.rar

    Python解释器是执行Python代码的程序,而标准库是一组预装的模块,包含各种常用功能,如文件I/O、网络通信、数据结构等。安装完成后,你可以通过命令行或集成开发环境(IDE)如PyCharm、VS Code等来编写和运行Python...

    python-3.7.7-docs-html_Python-3.7.7_python教程_

    例如,数据类(data classes)是Python 3.7中的新特性,它简化了创建具有默认值和自动生成方法(如`__repr__`, `__eq__`等)的类的过程。只需使用`@dataclass`装饰器,开发者就能快速创建出具有内置行为的类。 其次...

    python-3.6.5-amd64

    2. **优化的字典**:Python 3.6对字典进行了重大优化,使用了新的哈希算法和更有效的内存管理,使得字典操作速度更快,占用内存更少。 3. **异步IO**:增强了异步编程的支持,如asyncio模块,使得编写高性能的网络...

    python学习教程-04-字典常用操作之删除.ev4.rar

    本教程主要聚焦于Python字典的删除操作,这是掌握Python字典使用的关键部分。 一、字典的创建与访问 在Python中,可以使用大括号{}或dict()函数来创建一个字典。例如: ```python my_dict = {'name': 'Alice', 'age...

    python-3.6.4-amd64.exe

    此外,还可以选择安装一些常用的开发工具,如IDLE(Python的集成开发环境)和pip(Python的包管理器)。 Python的核心特性包括动态类型、自动内存管理、丰富的标准库以及广泛的第三方模块。动态类型让开发者不必...

    Python-3.7.0-amd64.rar

    3. 字典和集合的有序性:自Python 3.6起,字典就保证了插入顺序,3.7则对集合做了同样的处理,这在保持数据结构一致性方面有很大帮助。 4. 异常堆栈跟踪增强:异常现在会显示引发异常的整个堆栈,而不只是最后的帧...

    python-3.9.1-docs-pdf-a4.zip

    其次,深入讲解了Python的高级特性,如列表、元组、字典和集合等复合数据类型,以及模块和包的使用,这些是构建复杂程序的基础。同时,文档会涵盖类与对象,这是Python面向对象编程的核心,包括类的定义、对象的创建...

    征服Python--语言基础与典型应用

    这本书以易懂的语言和实例,全面覆盖了Python语言的核心概念和常用库,为读者提供了扎实的Python编程技能。 Python语言基础部分,首先介绍了Python的安装和开发环境的设置,包括如何下载和安装Python解释器,以及...

Global site tag (gtag.js) - Google Analytics