Python 学习之字典

一:字典的生成

          电话簿:

报警求助110
交通事故122
医疗急救120
消防火警119
全国统一水上遇险求助电话12395

这就是最典型的一种“键对位”集合,每一个“键”都有一个相应的“值”相对应,“紧急电话”与“电话号码相对应。

在 Python 的字典中,”键“称为 key,”值“称为 value。字典中每一个 元素 都是一个 key 和一个 value 的组合。

#三种笔的名字
pen_name=['圆珠笔','毛笔','钢笔']
#各种笔的价钱
pen_value=[5,15,25]

想要知道对应笔的价钱:

首先我们要根据笔的名字,来找的索引

然后通过索引,找到在价位表中对应的价钱,但这样做有个缺点:列表中的元素越多,列表越长,查找数据的耗时越多,且不管是写还是查都很麻烦。

但是有了字典(dict) 后,就可以将笔的种类作为 key 值,价钱作为 value,生成一组组的数据,即"键值对"。这样的话无论字典中有多少元素,都可以快速获得某个 key 对应的 value

二:字典的常用操作

1.如何创建字典

创建元组使用小括号,创建列表使用中括号,创建字典就使用 大括号

dict1 = {}

 先前我们学过,用 list() 方法会创建一个空列表,tuple() 方法会创建一个空元组,同样地,内置方法 dict() 也会创建一个空字典。

dict2 = dict()

如果要在字典中写入数据,每个元素都必须是 key: value 的写法,举例如下:

pen_dict = {'圆珠笔': 5,'毛笔': 15,'钢笔': 25}

注意:字典的 key 值可以是任意 不可变的数据类型,但 value 值可以使用各种不同的类型,例如这样的字典也是合法的:

test_dict = {1: 2,'test_str': 'mengxinchengxuyaun',None: [1,2,3]}

在这个例子中,一个 key - value 对是整数 1 和 2 的组合,另一个是两个字符串,还有一个是 None 和列表……这些混合在一起使用,看上去毫无意义,但都却是合法的。

2.字典的增删改查

查:

如何获取字典中某个 key 值所对应的 value 呢?输入 dict[key] 即可,代码如下:

# 通过 key 值获取 value
courses_dict = {1: 'linux',2: 'vim',3: 'python'}
print(courses_dict[1])
#结果为
'linux'
print(courses_dict[2])
#结果为
'vim'

 注意:不要与列表的获取元素搞混,列表的中括号里写的是 索引,而字典的中括号里写的是 key 的值。

如果 key 不存在,使用 dict[key] 则会抛出 KeyError 异常。有的时候为了避免这种错误出现,我们会使用字典的 get 方法获取 key 对应的 value,如果此时 key 不存在则默认返回 None 而不会报出异常。

courses_dict[2]
'Vim'
courses_dict.get(2)
'Vim'
# 如果 key 不存在,则默认返回 None 而不会报出异常
courses_dict.get(4)
# 以在 get 方法中给定一个默认值,如果 key 不存在则返回默认值
courses_dict.get(4, 'default')
'default'

增和改:

在字典中 增加元素 和 修改元素 的代码其实是相同的,只需要为字典中某一个 key 进行赋值,区别在于:

        a.如果此时 key 存在,则判断为你在修改元素,更新该 key 对应的 value 值

        b.如果不存在,则判断为你在添加元素,向字典中增加该 key: value 键值对:

courses_dict = {1: 'linux',2: 'vim'}
## 修改元素
courses_dict[2] = 'Python'
## 添加元素
courses_dict[3] = 'Java'
print(courses_dict)
##结果为
{1: 'Linux', 2: 'Python', 3:'Java'}

删:

可以使用 Python 的内置方法 del,将字典中不需要的键值对彻底删除。删除时,需要指定 字典名 和 需要删除的 key 值。

courses_dict = {1: 'linux',2: 'vim',3: 'java'}
##删除
del courses_dict[1]
print(courses_dict)
##结果为
{2: 'vim',3: 'java'}

还可以使用 pop() 方法,返回 key 对应的 value,并将该键值对删除:

courses_dict = {1: 'linux',3: 'java'}
courses_dict.pop(3)
##返回值:
'java'
print(courses_dict)
##结果为
{1: 'linux'}

三:遍历字典

字典是可以遍历的,有时你想得到所有的键值对,有时你想得到所有的键,或值,这些都有办法实现。

1.遍历键值对:

方法一:使用 items() 方法

首先我们更新一下课程字典,使元素增多一些;再使用 dict.items() 方法,看看输出的是什么:

courses_dict = {2: 'Vim', 5: 'bash', 6: 'python'}
print(courses_dict.items())
##结果为
dict_items([(2, 'Vim'), (5, 'bash'), (6, 'python')])

    可以看到,items() 方法返回了一个列表,列表中的元素是二元元组,对应着字典中每个元素的键和值。明白了这个,我们就可以用 for 循环 对 dict.items() 进行遍历。

 for course in courses_dict.items():
     print(course)

##结果为
(2, 'Vim')
(5, 'Bash')
(6, 'Python')

方法二:在 for 关键词后面加两个变量分别获取元组中的值

for key, value in courses_dict.items():
    print(key, value)

2 Vim
5 Bash
6 Python

2.遍历字典中的所有键

我们可以使用 keys() 方法来获取字典的所有键,同样我们先执行一下 dict.keys(),看看返回的是什么:

print(courses_dict.keys())
##结果为
dict_keys([2, 5, 6])

可以看到,同样返回了一个列表,列表中每个元素都是字典的一个 key。、

我们同样使用 for 循环 对 dict.keys() 进行遍历。

for key in courses_dict.keys():
     print(key)
##结果为
2
5
6

遍历字典中的所有值

学会了遍历所有键,那遍历所有值就很容易了,只需在打印时 print(dict[key]) 即可:

for key in courses_dict.keys():
      print(courses_dict[key])

##结果为
Vim
bash
python

也可以用 values() 方法来得到所有值:

print(courses_dict.values())
##结果为
dict_values(['Vim', 'Bash', 'Python'])

for value in courses_dict.values():
     print(value)

##结果为
Vim
bash
python

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我是萌新程序员

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值