`
美丽的小岛
  • 浏览: 309606 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Python字典的应用详解<转>

阅读更多

一.创建字典

方法①:
>>> dict1 = {}
>>> dict2 = {'name': 'earth', 'port': 80}
>>> dict1, dict2
({}, {'port': 80, 'name': 'earth'})

方法②:从Python 2.2 版本起
>>> fdict = dict((['x', 1], ['y', 2]))
>>> fdict
{'y': 2, 'x': 1}

方法③:

从Python 2.3 版本起, 可以用一个很方便的内建方法fromkeys() 来创建一个"默认"字典, 字
典中元素具有相同的值 (如果没有给出, 默认为None):
>>> ddict = {}.fromkeys(('x', 'y'), -1)
>>> ddict
{'y': -1, 'x': -1}
>>>
>>> edict = {}.fromkeys(('foo', 'bar'))
>>> edict
{'foo': None, 'bar': None}

二.如何访问字典中的值

①要想遍历一个字典(一般用键), 你只需要循环查看它的键, 像这样:
>>> dict2 = {'name': 'earth', 'port': 80}
>>>
>>>> for key in dict2.keys():
... print 'key=%s, value=%s' % (key, dict2[key])
...
key=name, value=earth
key=port, value=80

②从Python 2.2 开始
在 for 循环里遍历字典。
>>> dict2 = {'name': 'earth', 'port': 80}
>>>
>>>> for key in dict2:
... print 'key=%s, value=%s' % (key, dict2[key])
...
key=name, value=earth
key=port, value=80


要得到字典中某个元素的值, 可以用你所熟悉的字典键加上中括号来得到:
>>> dict2['name']
'earth'
>>>
>>> print 'host %s is running on port %d' % \
... (dict2['name'], dict2['port'])
host earth is running on port 80


③字典所有的方法。方法has_key()和 in 以及 not in 操作符都是布尔类型的
>>> 'server' in dict2 # 或 dict2.has_key('server')
False
>>> 'name' in dict # 或 dict2.has_key('name')
True
>>> dict2['name']
'earth'
一个字典中混用数字和字符串的例子:
>>> dict3 = {}
>>> dict3[1] = 'abc'
>>> dict3['1'] = 3.14159
>>> dict3[3.2] = 'xyz'
>>> dict3
{3.2: 'xyz', 1: 'abc', '1': 3.14159}


三.更新字典

采取覆盖更新
上例中 dict2['name']='earth';
更新 dict2['name']='abc';

四.删除字典元素和字典
del dict2['name'] # 删除键为“name”的条目
dict2.clear() # 删除dict2 中所有的条目
del dict2 # 删除整个dict2 字典
dict2.pop('name') # 删除并返回键为“name”的条目

dict2 = {'name': 'earth', 'port': 80}
>>> dict2.keys()
['port', 'name']
>>>
>>> dict2.values()
[80, 'earth']
>>>
>>> dict2.items()
[('port', 80), ('name', 'earth')]
>>>
>>> for eachKey in dict2.keys():
... print 'dict2 key', eachKey, 'has value', dict2[eachKey]
...
dict2 key port has value 80
dict2 key name has value earth


update()方法可以用来将一个字典的内容添加到另外一个字典中

{'server': 'http', 'port': 80, 'host': 'venus'}
>>> dict3.clear()
>>> dict3
>>> dict3


五.映射类型相关的函数

>>> dict(x=1, y=2)
{'y': 2, 'x': 1}
>>> dict8 = dict(x=1, y=2)
>>> dict8
{'y': 2, 'x': 1}
>>> dict9 = dict(**dict8)
>>> dict9
{'y': 2, 'x': 1}

dict9 = dict8.copy()

字典内建方法:

字典key值:dict9.keys()

字典值: dict9.values()

字典所有项:dict9.items()

返回字典值:dict9.get('y')

表 7.2 字典类型方法

方法名字 操作

dict.cleara() 删除字典中所有元素

dict.copya() 返回字典(浅复制)的一个副本

dict.fromkeysc(seq,val=None) c 创建并返回一个新字典,以seq 中的元素做该字典的键,val 做该字典中所有键对应的初始值(如果不提供此值,则默认为None)

dict.get(key,default=None)a 对字典dict 中的键key,返回它对应的值value,如果字典中不存在此键,则返回default 的值(注意,参数default 的默认值为None)

dict.has_key(key) 如果键(key)在字典中存在,返回True,否则返回False. 在Python2.2版本引入in 和not in 后,此方法几乎已废弃不用了,但仍提供一个
可工作的接口。

dict.items() 返回一个包含字典中(键, 值)对元组的列表

dict.keys() 返回一个包含字典中键的列表

dict.iter()d 方法iteritems(), iterkeys(), itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表。

dict.popc(key[, default]) c 和方法get()相似,如果字典中key 键存在,删除并返回dict[key],如果key 键不存在,且没有给出default 的值,引发KeyError 异常。

dict.setdefault(key,default=None)e 和方法set()相似,如果字典中不存在key 键,由dict[key]=default 为它赋值。

dict.update(dict2)a 将字典dict2 的键-值对添加到字典dict

dict.values() 返回一个包含字典中所有值的列表

①②③④⑤⑥⑦⑧⑨⑩
六.集合类型
①用集合的工厂方法 set()和 frozenset():
>>> s = set('cheeseshop')
>>> s
set(['c', 'e', 'h', 'o', 'p', 's'])
>>> t = frozenset('bookshop')
>>> t
frozenset(['b', 'h', 'k', 'o', 'p', 's'])
>>> type(s)
<type 'set'>
>>> type(t)
<type 'frozenset'>

②如何更新集合
用各种集合内建的方法和操作符添加和删除集合的成员:
>>> s.add('z')
>>> s
set(['c', 'e', 'h', 'o', 'p', 's', 'z'])
>>> s.update('pypi')
>>> s
set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y', 'z'])
>>> s.remove('z')
>>> s
set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y'])
>>> s -= set('pypi')
>>> s
set(['c', 'e', 'h', 'o', 's'])

③删除集合
del s

④成员关系 (in, not in)
>>> s = set('cheeseshop')
>>> t = frozenset('bookshop')
>>> 'k' in s
False
>>> 'k' in t
True
>>> 'c' not in t
True

⑤集合等价/不等价
>>> s == t
False
>>> s != t
True
>>> u = frozenset(s)
>>> s == u
True
>>> set('posh') == set('shop')
True

⑥差补/相对补集( – )
两个集合(s 和t)的差补或相对补集是指一个集合C,该集合中的元素,只属于集合s,而不属
于集合t。差符号有一个等价的方法,difference().
>>> s - t
set(['c', 'e'])

对称差分( ^ ):对称差分是集合的XOR

分享到:
评论

相关推荐

    Python爬虫入门教程:超级简单的Python爬虫教程.pdf

    ### Python爬虫入门教程知识点详解 #### 一、理解网页结构 在进行Python爬虫开发之前,首先要了解网页的基本构成。网页通常包含三个主要部分:HTML(超文本标记语言)、CSS(层叠样式表)以及JavaScript(一种常用...

    Python字典详解:声明、访问与高级应用

    本文将详细介绍如何在Python中声明和访问字典,以及一些字典的高级应用技巧。 字典是Python中非常强大的数据结构,它们提供了一种灵活的方式来存储和操作数据。通过本文的介绍,你应该对如何在Python中声明和访问...

    替换python字典中的key值方法

    比如有一个 ... 您可能感兴趣的文章:对python字典元素的添加与修改方法详解python 字典修改键(key)的几种方法python修改字典内key对应值的方法Python实现字典的key和values的交换对python中词典的values

    Python字典详解.zip

    Python字典是Python编程语言中的一种内置数据结构,它提供了高效的数据存储和访问方式。...在学习过程中,可以参考"Python字典详解.pdf"和"项目说明.pdf"这两份资料,它们将为你提供更深入的讲解和实例。

    Python 字典dict详解

    1、本文主要讲解了一些关于字典的知识,包括创建字典、访问字典内键值对以及对字典内置函数和方法进行了一些整理。 2、本文件是markdown文件,是本人辛辛苦苦整理出来的,一分耕耘一份收获。 3、禁止盗用,转载记得...

    python 开发技术详解

    通过阅读"Python开发技术详解"这本书,读者不仅能全面掌握Python编程语言,还能了解到Python在实际项目中的应用策略,为个人或团队的开发工作提供有力支持。无论你是初学者还是经验丰富的开发者,这本书都将是提升...

    Python 的字典(Dict)是如何存储的

    ### Python字典(Dict)的存储机制详解 #### 前言 在深入探讨Python字典的存储原理之前,我们先来明确几个概念。字典是Python中的一种内置数据结构,它以键值对的形式存储数据。由于其高效的数据查找性能,字典被...

    docopt-0.6.0.tar.gz

    docopt会自动处理命令行参数,将它们转换为Python字典,这样你就可以方便地根据用户的输入来执行相应的操作。 **docopt的特性** 1. **自然语言解析**:docopt允许你使用类似于Unix命令行工具的自然语言描述来定义...

    Python 字典(Dictionary)操作详解

    Python 字典(Dictionary)操作详解

    python字典排序实例详解

    本文实例分析了python字典排序的方法。分享给大家供大家参考。具体如下: 1、 准备知识: 在python里,字典dictionary是内置的数据类型,是个无序的存储结构,每一元素是key-value对: 如:dict = {‘username’:’...

    Python问题解决,重复向列表中添加字典作为元素

    目录Python问题解决(一),重复向列表中添加字典作为元素向一个列表中添加字典作为元素时错误描述解决最后 Python问题解决(一),重复向列表中添加字典作为元素 其他python学习笔记集合: Python基础知识详解 从...

    python实验三、字典和集合 .doc

    【Python 字典与集合实验详解】 实验目标集中在掌握Python中的两个重要数据结构——字典...通过这个实验,你可以深入理解Python字典和集合的用法,以及它们在实际问题中的应用,这将对你的Python编程技能有很大帮助。

    Python开发技术详解

    由于所提供的文件内容部分重复且不包含具体的技术知识点,我将仅依据提供的标题、描述和标签,详细解释“Python开发技术详解”所涉及的知识点,以及为Python初学者提供的指南。 首先,Python是一种广泛使用的高级...

    《python开发技术详解》.(周伟,宗杰).[PDF]&ckook;

    总结而言,《Python开发技术详解》覆盖了Python编程的方方面面,从基础语法到高级应用,从理论知识到实践项目,适合不同层次的Python学习者。通过阅读此书并结合实际编程练习,读者可以系统掌握Python编程,为成为一...

    python字典操作实例详解

    ### Python字典操作实例详解 #### 一、引言 Python 的字典是一种非常实用的数据结构,它允许我们通过键值对的方式存储数据。字典是无序的,且键必须是不可变类型(如字符串或数字)。在实际开发过程中,字典常被...

    python应用开发详解

    在"Python应用开发详解"中,我们可能会涵盖以下几个重要的知识点: 1. **基础语法**:Python的基础语法是其易学性的关键,包括变量定义、数据类型(如整型、浮点型、字符串、布尔型、列表、元组、字典和集合)、...

    基础 _ 11个Python字典用法详解.pdf

    python,算法,源代码,可编译

    Python字典的概念及常见应用实例详解

    本文实例讲述了Python字典的概念及常见应用。分享给大家供大家参考,具体如下: 字典的介绍 字典的概念 字典的创建 1. 我们可以通过{}、dict()来创建字典对象。 2. 通过 zip()创建字典对象 3. 通过 fromkeys ...

    Python开发技术详解源代码(附高清PDF)

    Python是一种高级、解释型、交互式和面向对象的脚本语言,因其简洁、易读的语法而被广泛应用于网络爬虫、数据分析、机器学习、Web开发等多个领域。本资源为"Python开发技术详解源代码(附高清PDF)",包含了丰富的...

Global site tag (gtag.js) - Google Analytics