Python中字典的使用方法

Python的字典包含的元素是“键(key)-值(value)对”。列表和元组是以数字作为索引的,字典可以看作是用键作为索引的。

1 字典的定义

使用大括号或者dict()构造方法定义字典对象。

1.1 使用大括号定义字典对象

可以使用大括号来定义字典对象,字典中的“键值对”之间用冒号分隔,每个“键值对”用逗号分隔,代码如下所示:

>>> d1 = {'Mon':1, 'Tue':2, "Wed":3}

>>> type(d1)

<class 'dict'>

1.2 使用dict()构造方法定义字典对象

也可以使用dict()构造方法定义字典对象,代码如下所示:

>>> t1 = (('The',4),('Fri',5))

>>> type(t1)

<class 'tuple'>

>>> d2 = dict(t1)

>>> type(d2)

<class 'dict'>

>>> print(d2)

{'The': 4, 'Fri': 5}

其中,t1是嵌套了元组元素的元组,将其作为dict()构造方法的参数,创建变量d2,d2是字典对象,其包含的“键值对”即为嵌套的子元组包含的元素。

2 字典对象的“增删改查”

2.1 增加对象中的元素

在前面提到,字典可以看作是用键作为索引的。因此,可以之间用键的方式添加字典对象中的元素,代码如下所示:

>>> d2['Sat'] = 6

>>> print(d2)

{'The': 4, 'Fri': 5, 'Sat': 6}

以上代码中,通过中括号包围的键,为d2添加了一个键值对。

2.2 删除对象中的元素

与添加元素类型,可以通过键删除字典对象中的元素,代码如下所示:

>>> del d2['The']

>>> print(d2)

{'Fri': 5, 'Sat': 6}

在以上代码中,通过del()函数和键,删除了字典中的元素。

2.3 修改对象中的元素

可以通过键来修改字典对象中的元素,代码如下所示:

>>> d2['Fri'] = 7

>>> print(d2)

{'Fri': 7, 'Sat': 6}

2.4 查看对象中的元素

2.4.1 查看对象中的键

可以使用以下代码查看字典对象中的键:

>>> for key in d2.keys():

...     print(key)

...

...     

Fri

Sat

其中,通过字典对象key2调用了成员方法keys(),该方法返回的类型是“dict_keys”,其包含的元素即为字典中的键,最后通过for循环遍历键。

2.4.2 查看对象中的值

可以使用以下代码查看字典对象中的值:

>>> for value in d2.values():

...     print(value)

...

...     

7

6

其中,通过字典对象key2调用了成员方法values(),该方法返回的类型是“dict_values”,其包含的元素即为字典中的值,最后通过for循环遍历键。

2.4.4 查看对象中的键值对

可以使用以下代码查看字典对象中的键值对:

>>> for item in d2.items():

...     print(item)

...

...     

('Fri', 7)

('Sat', 6)

其中,通过字典对象key2调用了成员方法items(),该方法返回的类型是“dict_items”,其包含的元素即为字典中的键值对,最后通过for循环遍历键。

3 注意事项

3.1 字典对象的键必须是不可修改类型

Python中的不可修改类型包括数字、字符串和元组;可修改类型包括列表、集合和字典等。字典对象的键必须是不可修改类型。

>>> d3 = {1:'one', 2:'two', 3:'three'}

>>> d4 = {[1,]:'one'}

Traceback (most recent call last):

  File "<pyshell#26>", line 1, in <module>

    d4 = {[1,]:'one'}

TypeError: unhashable type: 'list'

其中,d3的键是数字,此时定义d3的代码是正确的。而定义d4的键是列表,因为列表是可修改类型,因此定义d4的代码报错,报错信息为“类型错误:列表是不可哈希类型”,不可哈希类型指的就是可修改类型。

3.2 字典对象中的键不能相同而值可以相同

>>> d4 = {1:'one', 2:'two', 3:'three', 4:'one'}

以上代码中,d4中有两个元素的值是“one”,此时代码正确。

>>> d5 = {1:'one', 2:'two', 3:'three', 1:'four'}

>>> print(d5)

{1: 'four', 2: 'two', 3: 'three'}

以上代码中,定义d5时,有两个元素的键是“1”,此时,后面的元素会覆盖前面的元素。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值