栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【学习记录】Python零基础入门(四)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【学习记录】Python零基础入门(四)

第四章 Python零基础入门之了解字典

本人自学的主要教材为Magnus Lie Hetland的Beginning Python:From Novice to Professional, Third Edition。

本人只有C++基础,初入Python,如有不足,还请指正。本系列仅作本人记录学习用。

目录

第四章 Python 0基础入门之了解字典

前言

一、什么是字典

二、字典的用途

三、创建和使用字典

1.函数(类)dict

2.字典的基本操作

3.将字符串格式设置功能应用于字典

4.字典method

4.1 clear

4.2 copy

4.3 fromkeys

4.4 get

4.5 items

4.6 keys

4.7 pop

4.8 popitem

4.9 setfault

4.10 update

4.11 valus

总结


前言

本章主要介绍什么是字典,字典有什么用途,以及如何创建和使用字典。在如何创建和使用字典的部分,会介绍dict、基本的字典操作、如何将字符串格式设置功能用于字典和字典的method。

一、什么是字典

字典是Python唯一的内置映射类型,其中的值具有无序性,储存在键中,与键构成映射关系,键可能是数、元组或字符串。需要要通过名称来访问各个值的数据结构,称为映射(mapping)。

二、字典的用途

字典旨在让使用者能够快速查询到特定的单词(键),获知其定义(值)。以下是一些用途:

  • 表示棋盘的状态,每个键都是由坐标组成的元组。
  • 储存文件修改时间,键为文件名
  • 数字电话/地址簿

三、创建和使用字典

字典由键及其相对应的值组成,这种键-值对称为项(item)。在字典(其他映射类型)中,键必须独一无二,值无此要求。字典以类似于以下的方式表示:

#代码示例
phonebook={'Alice':1234,'Beth':1596,'Cecil':1567}
#空字典
{}

1.函数(类)dict

可以使用dict创建字典,函数的参数可以为其他映射(如其他字典)、键-值对和关键字实参。如果没有任何参数,将返回一个空字典。

#代码示例
>>> item=[('name','Gumby'),('age','42')]
>>> d=dict(item)
>>> d
{'name': 'Gumby', 'age': '42'}
>>> d=dict(name='GUmby',age='42')
>>> d
{'name': 'GUmby', 'age': '42'

2.字典的基本操作

字典的基本行为有很多相似于序列:

  • Len(d)返回字典d包含的项数。
  • d[k]返回与键k相关联的值。
  • d[k]=v将值v关联到键k。
  • del d[k]删除键为k的项。
  • k in d检查字典d是否包含键为k的项。

字典也有一些与列表不同的操作:

  • 键的类型:字典中的键可以是任何不可变的类型。
  • 自动添加:即使是字典中没有的值,也可以给它赋值,这将在字典中创建一个新项。
  • 成员资格:k in d 查找的是键(d是一个字典),而不是值。
#代码示例
>>> x=[]
>>> x[42]='foorle'
Traceback (most recent call last):
  File "", line 1, in 
IndexError: list assignment index out of range
>>> x={}
>>> x[42]='foolea'
>>> x
{42: 'foolea'}

3.将字符串格式设置功能应用于字典

通过在字典中储存一系列命名的值,可以让格式设置更加容易一些。例如,可在字典中包含各种信息,只需在格式字符串中提取所需的信息即可。使用format_map即可之处将通过一个映射来提供所需的信息。

#代码示例
>>> phonebook={'Beth':'9102','Amy':'468'}
>>> "Amy's phone number is {Amy}".format_map(phonebook)
"Amy's phone number is 468"

像这样使用字典时,可以指定任意数量的转换说明符,调剂那是所有的字段名都是包含在字典中的键。模板系统中这样使用很有用。

#代码示例
>>>template='''
...{title}
...
...{title}
...

{text}

...''' >>>data={'title':'My home page','text':'Welcome to my home page'} >>>print(template.format_map(data)) My home page My home page

Welcome to my home page

4.字典method

4.1 clear

原地删除所有字典项,无返回值。

重要应用:x和y指向同一个字典,利用clear删除原来字典中的所有元素。

#代码示例
>>> x={}
>>> y=x
>>> x['key']='value'
>>> y
{'key': 'value'}
>>> x.clear()
>>> x
{}
>>> y
{}
>>> x['key']='value'
>>> x
{'key': 'value'}
>>> y
{'key': 'value'}
>>> x={}
>>> x
{}
>>> y
{'key': 'value'}

4.2 copy

返回一个新字典,浅复制。当替换副本中的值时,原件不受影响;当修改副本中的值时,原件也发生改变(就地修改不是替换)。

#代码示例
>>> x={'username':'admin','machine':['foo','bar','baz']}
>>> y=x.copy()
>>> y['username']='mlj'
>>> y['machine'].remove('bar')
>>> y
{'username': 'mlj', 'machine': ['foo', 'baz']}
>>> x
{'username': 'admin', 'machine': ['foo', 'baz']}

为避免这种问题,可以使用深复制,利用模块copy中的函数deepcopy。

#代码示例
>>> from copy import deepcopy
>>> d={}
>>> d['name']=['Amy','Bob']
>>> c=d.copy()
>>> dc=deepcopy(d)
>>> d['name'].append('Clice')
>>> c
{'name': ['Amy', 'Bob', 'Clice']}
>>> dc
{'name': ['Amy', 'Bob']}

4.3 fromkeys

创建一个新字典,包含指定的键,值默认为None。

#代码示例
>>> {}.fromkeys(['name','age'])
{'name': None, 'age': None}

可以直接对dict调用method of fromkeys。

#代码示例
>>> dict.fromkeys(['name','age'])
{'name': None, 'age': None}

可以提供特定的值。

#代码示例
>>> dict.fromkeys(['name','age'],'unknown')
{'name': 'unknown', 'age': 'unknown'}

4.4 get

访问不存在的键时,默认返回None,可以指定返回的值。

#代码示例
>>> d={}
>>> d.get('name','N/A')
'N/A'

4.5 items

返回一个包含所有字典项的列表,每个元素都为(key,value)的形式,字典项在列表中的排列顺序不确定。返回值的类型属于字典视图。可以对其进行确定长度和成员资格检查的操作。

#代码示例
>>> d={'title':'python web site','url':'http://www.python.org','spam':0}
>>> d.items()
dict_items([('title', 'python web site'), ('url', 'http://www.python.org'), ('spam', 0)])
>>> 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

4.6 keys

返回一个字典视图,包含指定字典中的键。

#代码示例
>>> d={'title':'python web site','url':'http://www.python.org','spam':0}
>>> d.keys()
dict_keys(['title', 'url', 'spam'])

4.7 pop

返回与指定键相关联的值,并将该键-值对从字典中删除 。

4.8 popitem

随机弹出一个字典项,并将其删除。

4.9 setfault

获取与指定键相关联的值,如果不包含的键,会在字典中添加指定的项,默认值为None。可自定义。

4.10 update

使用一个字典的项更新另一个字典。如果键不同,直接添加;如果键相同,替换原有的值。

4.11 valus

返回一个由字典中的值组成的字典视图,返回的字典视图可能包含重复的值。

#代码示例
>>> d={}
>>> d[1]=1
>>> d[2]=2
>>> d[3]=3
>>> d[4]=1
>>> d.values()
dict_values([1, 2, 3, 1])

总结

本章主要介绍了字典的相关概念,以及字典如何使用。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1001524.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号