最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

零基础学习Python字典的11个方法超级代码详解

XAMPP案例 admin 652浏览 0评论

zzzzzy000006

零基础学习Python字典操作

在 Python 中,字典是一种可以将相关的两个信息关联起来的操作,并且字典可存储的信息量几乎不受限制,下面一起来跟小编学习一下如何访问和使用字典中的信息吧!

1、什么是字典

字典的定义

字典是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据。为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value。
  1. dict1 = {'name':'Jame','age':15}
  2. print(dict1)

使用字典

在 Python 中,字典是一系列键-值对,每个键都与一个值相关联,我们可以通过键来访问与之相关联的值,与键相关联的值可以是数字、字符串、列表、字典、或者任何 python 对象。
字典用花括号{ }来表示,例如:
  1. dict1 = {'name':'Jame','age':15}
  2. print(dict1)
键与值之间用冒号分隔,而键-值对之间用逗号分隔。

访问字典

要想获取与键相关联的值,我们可以依次指定字典名和放在放括号内的键,例如:
  1. dict1 = {'name':'Jame','age':15}
  2. print(dict1['age'])
代码会返回字典 dict1 中与 ’age’ 相关联的值 15。

2、字典的基本用法

添加键-值对

字典是一种动态结构,可以随时在其中添加键值对。
  1. score = {'物理':90,'化学':85,'生物':88}
  2. score['英语'] = 95
  3. score['数学'] = 80
  4. print(score)
输出:
  1. {'物理': 90, '化学': 85, '生物': 88, '英语': 95, '数学': 80}
这里要注意,键值对的排列顺序与添加顺序不一定相同,python只关心键与值之间的关联关系,不关心键值对的顺序。

修改字典

首先,我们先创建一个空字典,再分行添加各个键值对。
  1. dict2 = {}
  2. dict2['name'] = 'Tom'
  3. dict2['age'] = 30
  4. dict2['color'] = 'blue'
要修改字典中的值,可依次指定字典名、用[ ]括起来的键以及与该键相关联的新值。即可修改字典。
  1. dict2['age'] = 31

删除键值对

对于字典中不再需要的信息,可以使用 del 语句将其删除,使用 del 语句时,必须指定字典名和要删除的键,例如,删除 dict2 中的键 color 及其值:
  1. del dict2['color']
删除的键值对就永远消失了

3、遍历字典

遍历所有键值对

  1. for key, value in dict2.items():
  2. print(key)
  3. print(value)
要使用 for 循环遍历字典,可声明两个变量分别储存键和值。items() 方法可以返回一个键值对列表,通过 for 循环依次将每个键值对存储到指定的两个变量中。注意,遍历字典时,键值对的返回顺序与储存顺序不一定相同。

遍历所有键

当不需要使用字典中的值时,我们可以使用 keys() 方法遍历字典中的键。
  1. for name in dict2.keys():
  2. print(name.title())
  3. #等价
  4. for name in dict2:
  5. print(name.title())
Python 会默认遍历所有的键,所以当需要返回所有键时,也可以不加 keys()

按顺序遍历所有键

要以特定顺序返回元素,我们可以使用 sorted() 函数来获得按特定顺序排列的键列表副本。
  1. for name in sorted(dict2.keys()):
  2. print(name.title())

遍历所有值

当只需要字典中的值时,可以使用 values() 方法,它会返回一个值列表,其中不包含任何键。
  1. for name in dict2.values():
  2. print(name.title())
当值中含有很多重复值时,为了剔除重复项,可使用集合 set()
  1. for name in set(dict2.values()):
  2. print(name.title())
结果会返回一个不重复的列表。

4、嵌套

将字典储存在列表中,或者将列表储存在字典中,称为嵌套。

字典列表

  1. dict1 = {'物理':90,'化学':85,'生物':88}
  2. dict2 = {'物理':95,'化学':88,'生物':70}
  3. dict3 = {'物理':80,'化学':90,'生物':75}
  4. dict4 = [dict1,dict2,dict3]
  5. for a in dict4:
  6. print(a)

字典嵌套列表

  1. dict5 = {
  2. 'color':'blue',
  3. 'type':['A','B','C']
  4. }

字典嵌套字典

  1. dict6 = {
  2. 'a':{
  3. 'name':'Tom',
  4. 'age':6
  5. }
  6. 'b':{
  7. 'name':'Marry',
  8. 'age':10
  9. }
  10. }

Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。

print(dir(dict))
['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

 

01 clear()

描述:清除字典中所有的元素,得到的是空的字典。返回值None

语法:dict.append(object)

参数:object可以添加 列表,字典,元组,集合,字符串等。

 dic = {"python3":123}print(dic.clear())None

 

02 copy()

描述:返回一个字典浅拷贝的副本

语法:dict.copy()

参数:

dict1 = {'Name': 'Xiaowuge', 'Age': 17};
dict2 = dict1.copy()str(dict2)"{'Name': 'Xiaowuge', 'Age': 17}"

 

03 fromkeys()

描述:创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。

语法:dict.fromkeys(seq[, value])

参数:

  • seq — 字典键值列表。
  • value — 可选参数, 设置键序列(seq)的值。
seq = ('Google', 'Baidu', 'Taobao')
dict.fromkeys(seq){'Google': None, 'Baidu': None, 'Taobao': None}
dict.fromkeys(seq, 1){'Google': 1, 'Baidu': 1, 'Taobao': 1}

 

04 get()

描述:返回指定键的值,如果值不在字典中返回default值

语法:dict.get(key, default=None)

参数:

  • key — 字典中要查找的键。
  • default — 如果指定键的值不存在时,返回该默认值。
dic = {"uiui":"ioio"}dic.get('uiui')'ioio'print(dic.get("uiuiui","我是第二个参数,字典中不存在参数一中的键"))'我是第二个参数,字典中不存在参数一中的键'
print(dic.get("uiuiui"))None

 

05 items()

描述:列表返回可遍历的(键, 值) 元组数组。

语法:dict.items()

参数:

dict = {'name':'Alice','age':23,'address':'Hangzhou'}dict.items()dict_items([('name', 'Alice'), ('age', 23), ('address', 'Hangzhou')])
最终得到的是一个dict_items对象。这个对象也是一个可迭代对象,可以用iter方法将其转化为一个迭代器,其将字典的每一个键值对都转化成了元组
dic1 = iter(dict.items())for i in dic1:print(i)print(type(i))#同时进行引用循环dict = {'name':'Alice','age':23,'address':'Hangzhou'}for i,v in dict.items():print(i+':'+str(v))name:Aliceage:23address:Hangzhou

06 keys()

描述:以列表返回一个字典所有的键。

语法:dict.keys()

参数:

dict = {'name':'Alice','age':23,'address':'Hangzhou'}dict.keys()dict_keys(['name', 'age', 'address'])
list(dict.keys())#转换成列表['name', 'age', 'address']

 

07 pop()

描述:顾名思义让字典中的某个键对应的项“离开”字典。

语法:pop(key[,default])

参数:

  • key: 要删除的键值
  • default: 如果没有 key,返回 default 值

接受两个参数,第一个参数为键,第二个参数为可选参数,如果字典中不存在第一个参数中的键,

则返回第二个参数。如果没有传入第二个参数,则抛出keyerror。

dict = {'name':'Alice','age':23,'address':'Hangzhou'}dict.pop('age')23print(dict){'name': 'Alice', 'address': 'Hangzhou'} #age没了

 

08 popitem()

描述:删除字典中某一键值对,并以元组的形式返回这一键值对,返回并删除字典中的最后一对键和值。

语法:dict.popitem()

参数:

注意:pop 和 popitem 是字典中的删除操作。pop 是以字典的 “键” 为参数,删除指定的键 / 值对,pop 中的参数不能省略且如果删除字典中没有的键 / 值对,会报错。

dict = {'name':'Alice','age':23,'address':'Hangzhou'}dict.popitem()('address', 'Hangzhou')print(dict){'name': 'Alice', 'age': 23}

 

09 setdefault()

描述:如果键不存在于字典中,将会添加键并将值设为默认值。Python 字典 setdefault() 函数和 get()方法 类似

语法:dict.setdefault(key, default=None)

参数:

  • key — 查找的键值。
  • default — 键不存在时,设置的默认键值。
dict = {'name':'Alice','age':23,'address':'Hangzhou'}
dict.setdefault('name')'Alice'
print(dict){'name': 'Alice', 'age': 23, 'address': 'Hangzhou'}
#身高这个键,看看有没有,没有就加进去dict.setdefault('high',178)178dict{'name': 'Alice', 'age': 23, 'address': 'Hangzhou', 'high': 17}

 

10 update()

描述:更新字典的键值对,将参数中字典中的键值对更新到字典中,此方法无返回值

语法:dict.update(dict)

参数:dict– 添加到指定字典dict里的字典。

dict = {'name':'Alice','age':23,'address':'Hangzhou'}dict.update({'age':80})print(dict){'name': 'Alice', 'age': 80, 'address': 'Hangzhou'}

 

11 values()

描述:返回字典中所有键对应的值

语法:dict.values()

参数:

dict = {'name':'Alice','age':23,'address':'Hangzhou'}dict.values()dict_values(['Alice', 23, 'Hangzhou'])
dict = {'nick':'帅气小王子','item':'长袖短款','price':29.99,'prov':'杭州'}dict.values()dict_values(['帅气小王子', '长袖短款', 29.99, '杭州'])

5、小结

读到这里,相信大家已经学会了如何创建和访问一个字典了,我们可以在 if、for、while 等语句中加入字典的操作,实现各种强大的功能!

转载请注明:XAMPP中文组官网 » 零基础学习Python字典的11个方法超级代码详解

您必须 登录 才能发表评论!