Python中字典(dict)的详细使用

文章目录

  • 前言
  • 一、字典的创建
    • 1.使用花括号{}
    • 2.使用dict()函数
    • 3.使用fromkeys()方法
  • 二、字典元素的访问
  • 三、字典的元素的查询
    • 1.查询所有元素items()方法
    • 2.查询所有键keys()方法
    • 3.查询所有值values()方法
    • 4.查询键对应的值get()方法
    • 5.查询键对应的值并适时添加键值对setdefault()方法
  • 四、字典的其他操作
    • 1.字典元素的添加
    • 2.字典元素的修改
    • 3.字典元素的删除
      • (1)pop()方法
      • (2)popitem()方法
      • (3)clear()方法
      • (4)del语句
    • 4.字典的迭代
      • (1)键和值
      • (2)键
      • (3)值
    • 5.字典的推导式
    • 6.判断键是否存在于字典
    • 7.计算字典中键值对的个数

前言

字典是无序的映射集合,有不错的查找速度。字典的键必须唯一,值可以不唯一。键必须是不可变类型以保证键唯一,如字符串、数字或元组,值可以是任何数据类型。在查找字典时,先查的是键,然后通过键可以直接知道对应的值,所以查找速度很高。字典是无序的,所以不具有列表的索引和切片访问的操作,但是有增删查改的操作。另外,从Python3.6开始,字典变成了有序。

一、字典的创建

1.使用花括号{}

字典的键和值之间使用冒号“:”连接,键与键之间使用逗号“,”连接。键可以重复,对应的值会被覆盖。可以用花括号{}创建空字典,这与集合是不一样的。
语法格式:

{key1:value1,key2:value2,...}
{1:1	,2:2,...}

举例:

d1 = {}#创建空字典
print(type(d1))
print(d1)

d2 = {'apple':3,'orange':5,'grape':10}
print(d2)
d3 = {'apple':3,'orange':5,'grape':10,'grape':50}#创建重复键的字典,前一个的值会被覆盖为后一个的值
print(d3)

运行结果如下:
在这里插入图片描述

2.使用dict()函数

字典的键和值之间使用等于号“=”连接,键与键之间使用逗号“,”连接。键不可以重复,会报SyntaxError的异常。使用该函数,其中的键如果是字符串,不需要加上单引号,相当于对变量赋值。
语法格式:

dict(key1=value1,key2=value2,...)
dict(1=1	,2=2,...)

举例:

d1 = dict(apple=3,orange=5,grape=10)
print(d1)
d2 = dict(apple=3,orange=5,grape=10,grape=50)#创建重复键的字典,报错
print(d2)

运行结果如下:
在这里插入图片描述
在这里插入图片描述

3.使用fromkeys()方法

用于统一将传入字典的键对应的值设置为预置值或者None。
语法格式:

d1 = dict.fromkeys(iterable,value)
				   可迭代类型,预置值(默认为None

举例:

d1 = dict.fromkeys(('tomato','potato'))#未设置value
print(d1)
d2 = dict.fromkeys(('tomato','potato'),10)#设置value
print(d2)

运行结果如下:
在这里插入图片描述

二、字典元素的访问

根据字典的键是唯一的特性,我们可以通过键直接获取其对应的值。如果该键不在字典中,则会报KeyError的异常。后面会讲到访问某一个不存在的键的值不会报错的方法。

d1 = dict(apple=3,orange=5,grape=10)
print(d1['apple'])#访问字典中存在的键的值
print(d1['banana'])#访问字典中不存在的键的值

运行结果如下:
在这里插入图片描述

三、字典的元素的查询

1.查询所有元素items()方法

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
print(d1.items())#该对象支持迭代操作,可以遍历

运行结果如下:
在这里插入图片描述

2.查询所有键keys()方法

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
print(d1.keys())#该对象支持迭代操作,可以遍历

运行结果如下:
在这里插入图片描述

3.查询所有值values()方法

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
print(d1.values())#该对象支持迭代操作,可以遍历

运行结果如下:
在这里插入图片描述

4.查询键对应的值get()方法

语法格式:

dict.get(key[,default=None])
		  键,预置值

第一个参数是字典中要查找的键,第二个参数是预置值。当字典中存在该键,则返回其对应的值;当字典中不存在该键,则返回预先设置好的预置值,预置值缺省时表示空值None。

举例:

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
print(d1.get('grape'))#字典中该键存在,返回对应的值
print(d1.get('banana'))#字典中该键不存在,返回空值
print(d1.get('banana',60))#字典中该键不存在,返回预置值

运行结果如下:
在这里插入图片描述

5.查询键对应的值并适时添加键值对setdefault()方法

语法格式:

dict.setdefault(key[,default=None])
		  键,预置值

第一个参数是字典中要查找的键,第二个参数是预置值。当字典中存在该键,则返回其对应的值;当字典中不存在该键,则以键值对形式将(key,default)添加到字典中,并且返回预先设置好的预置值,预置值缺省时表示空值None。

举例:

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
print(d1.setdefault('apple'))#该键存在,返回对应值
print(d1.setdefault('banana'))#该键不存在,存入新键值对,预置值缺省,返回None
print(d1)
print(d1.setdefault('app',90))#该键不存在,存入新键值对,预置值已设置,返回预置值
print(d1)

运行结果如下:
在这里插入图片描述

四、字典的其他操作

1.字典元素的添加

我们可以通过update()方法或者键添加元素。

d1 = {'apple':1,'orange':5}
print(d1)
d1.update(grape = 10)#通过update()方法,键值对的形式添加元素
print(d1)
d1['strawberry'] = 20#通过键添加元素
print(d1)

运行结果如下:
在这里插入图片描述

2.字典元素的修改

我们可以通过update()方法或者键修改元素。修改字典元素就是对存在的键对应的值进行重新赋值。

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
print(d1)
d1.update(grape = 30)#通过update()方法,键值对的形式修改元素
print(d1)
d1['strawberry'] = 40#通过键修改元素
print(d1)

运行结果如下:
在这里插入图片描述

3.字典元素的删除

(1)pop()方法

语法格式:

dict.pop(key[,default])
		  键,预置值

第一个参数是字典中要删除的键,第二个参数是预置值。当字典中存在该键,则返回其对应的值;当字典中不存在该键,则返回预先设置好的预置值;当预置值缺省且该键不存在,报KeyError的异常。
举例:

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
print(d1)
a = d1.pop('grape')#删除存在的键,返回该键对应的值
print(a,d1)
b = d1.pop('banana',50)#删除不存在的键,返回预置值
print(b,d1)
c = d1.pop('banana')#删除不存在的键,预置值缺省,报错
print(c,d1)

运行结果如下:
在这里插入图片描述

(2)popitem()方法

用于随机删除字典中的元素。

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
print(d1)
d1.popitem()#随机删除字典元素
print(d1)

运行结果如下:
在这里插入图片描述

(3)clear()方法

用于清空字典中的元素。

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
print(d1)
d1.clear()#清空字典元素
print(d1)

运行结果如下:
在这里插入图片描述

(4)del语句

通过指定键来删除该键值对。del语句也可以删除整个字典对象。

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
print(d1)
del d1['apple']#指定键来删除该键值对
print(d1)

运行结果如下:
在这里插入图片描述

4.字典的迭代

(1)键和值

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
for k,v in d1.items():#键和值分别输出
    print(k,v)
for i in d1.items():#以键值对的形式输出
    print(i)

运行结果如下:
在这里插入图片描述

(2)键

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
for k in d1.keys():
    print(k)

运行结果如下:
在这里插入图片描述

(3)值

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
for v in d1.values():
    print(v)

运行结果如下:
在这里插入图片描述

5.字典的推导式

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
d2 = {k:v for k,v in d1.items()}#字典推导式
print(d2)

l1 = [k + '=' + str(v) for k,v in d1.items()]#利用字典推导式将值传给列表
print(l1)

运行结果如下:
在这里插入图片描述

6.判断键是否存在于字典

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
#判断值时,可以直接使用字典名
print('orange' in d1.keys())#判断该键是否在字典中
print('orange' not in d1.keys())#判断该键是否不在字典中
print('orange' not in d1)#判断该键是否不在字典中

print(10 in d1.values())#判断该值是否在字典中
print(10 not in d1.values())#判断该值是否不在字典中

运行结果如下:
在这里插入图片描述

7.计算字典中键值对的个数

d1 = {'apple':1,'orange':5,'grape':10,'strawberry':20}
print('键值对个数为',len(d1))#计算键值对的个数

运行结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忙_

谢谢支持,我会更加努力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值