Python之字典

字典是Python中唯一实现映射关系的内置类型。

字典的创建:

(1)直接用大括号和冒号的组合进行映射关系的组合

x = {'苹果':'apple', '香蕉':'banana'}

冒号左边称为键,右侧称为值;一个键对应一个值,可以有重复的值,但不允许有重复的键,由键可以得到值:

(2)使用dict()函数,每个参数就是一个键值对:

需要注意的是,使用dict()函数创建字典时不可以在键上加引号,否则会出现语法上的错误。

(3)使用列表作为参数,列表中的每个元素是使用元组包裹起来的键值对

(4)混合法,本质就是第一种和第二种的混合

(5)借用zip()函数创建:

字典的新增:

(1)可以由字典中不存在的键创建一个新的键值对:

(2)fromkeys()方法

语法结构为:fromkeys(iterable, value);可迭代对象中的元素作为键,value为值默认为None:

字典的删除:

(1)pop()方法

语法格式为:pop(key[, default]),删除给定的键的键值对,并返回对应的值:

如果pop一个不存在的键就会出现异常,如果不想出现异常,可以设置default参数。

(2)popitem()方法

在Python3.7之前随机删除字典里一个键值对,在Python3.7之后是删除最后加入的键值对(这里是Python3.9):

d['最后'] = '要删除' //先给d字典新增加一个键值对

(3)del 关键字

对于给定的键,删除对应的键值对;如果给的是字典,则整个字典将会被删除:

(4)clear()

clear()只会清空字典里的内容,而不会删除字典:

字典的修改:

(1)根据指定的键修改对应的值:

对于字典a:

a = {'1':'one', '2':'two'}

需注意的事,如果想要修改的键值对不存在,那么结果是会新增一个键值对,比如我想要修改键'3'对应的值,而键'3'不存在:

(2)update()方法

a = {'1': 'One', '2': 'two', '3': 'three'}

update()方法支持同时给他传入多个键值对,也可以给它传入另外一个字典,或者一个包含键值对的可迭代对象:

可以看出,如果有键对应,则覆盖其对应的值;没有键对应,则新增一个键值对。

还可以做如下修改:

字典的查找:

c = {'苹果': 'Apple', '香蕉': 'Banana'}

(1)给出指定的键,返回对应的值:

如果给定的键值不存在,则会抛出异常,没有解决办法,此时可以使用get()方法而不使其抛出异常。

(2)get()方法

语法结构为:get(key[, default])

(3)setdefault()方法

语法结构为:setdefault(key, default)

查找给定的键是否存在于字典中,如果存在,则返回对应的值(default的值不影响原值),如果不存在,则将该键存于字典中,并给其指定一个新的值(default)。

我们先查看一下此时字典c里的内容

①如果查找一个不存在的键‘梨’:

新增添了一个键值对,值默认为None。

②如果查找一个存在的键‘苹果’,并给定default的值,则会返回对应的值,且default不产生任何影响:

③如果查找一个不存在的键,并给定default的值,则会返回default的值,并且会在字典中新增该键与default对应的值的键值对:

items()、keys()、values()方法

字典c:

c = {'苹果': 'Apple', '香蕉': 'Banana', '梨': None, '桃子': 'Peach'}

items()用于获取字典的键值对;keys()用于获取字典的键;values()用于获取字典的值

先创建三个视图对象(字典的动态视图,字典发生改变,视图也会发生改变):

查看此时的视图内容:

现在进行字典内容的修改:

现在再查看三个视图对象:

copy()、len()

(1)copy()可以实现字典的浅拷贝:

(2)len()可以获取字典中键值对的数量:

字典转换为列表:

iter()

iter()将字典转换为一个迭代器,迭代器里只存放了键:

reversed()函数

嵌套

d = {'one':{'语文':67, '数学':78}, 'two':{'语文':78, '数学':99}}

字典推导式:

c = {'香蕉': 'Banana', '梨': 'Pear', '桃子': 'Peach', '苹果': 'Apple'}

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值