6. 字典数据类型

6. 字典数据类型

1. 字典数据类型

字典数据(dictionary)类型提供了一种灵活的访问和组织数据的方式。像列表一样,“字典”是许多值的集合。但不像列表的下标,字典的索引可以使用许多不同数据类型,不只是整数。字典的索引被称为“键”,键及其关联的值称为“键-值”对。

Python语言中的字典可以通过大括号({})建立,建立模式如下:

**{<键1>:<值1>, <键2>:<值2>, … , <键n>:<值n>} **

其中,键和值通过冒号连接,不同键值对通过逗号隔开。

例如,把下表中的一条雇员数据存储在字典employee中:

编号 姓名 部门 电子邮箱 电话号码 身份证号码
10932 张珊 管理 [email protected] 18612345678 520125197907167551
10933 李思 软件 [email protected] 18612345679 510110195512176250
10934 王武 财务 [email protected] 18612345680 510102196510255826
employee = {
   "编号":"10932","姓名":"张珊","部门":"管理","电子邮箱":"[email protected]","电话号码":"18612345678","身份证号码":"520125197907167551"}
employee
----------------------------------------------
{
   '编号': '10932',
'姓名': '张珊',
'部门': '管理',
'电子邮箱': '[email protected]',
'电话号码': '18612345678',
'身份证号码': '520125197907167551'}

在这个字典中,编号、姓名、部门、电子邮箱、电话号码、身份证号码称为“”,10932、张珊、管理、[email protected]、18612345678、520125197907167551称为这些键分别对应的“”。

键通常是字符串,但它还可以是Python中其他任意的不可变类型:布尔型、整型、浮点型、元组、字符串,以及其他一些不可变的类型。字典本身是可变的,因此可以增加、删除或修改其中的键值对。字典的键必须保证互不相同

  • 字典中的表项是不排序的。字典打印出来的顺序与创建之初的顺序不同,这不是错误。字典是集合类型的延续,各个元素并没有顺序之分。如果一样,纯属巧合:)
print(employee)
---------------------------
{
   '编号': '10932', '姓名': '张珊', '部门': '管理', '电子邮箱': '[email protected]', '电话号码': '18612345678', '身份证号码': '520125197907167551'}

1.1 访问字典值

字典最主要的用法是查找与特定键相对应的值,这通过索引符号来实现。

因为字典是不排序的,所以不能像列表那样切片。

一般来说,字典中键值对的访问模式如下,采用中括号格式:

<值> = <字典变量>[<键>]

字典中对某个键值的修改可以通过中括号的访问和赋值实现:

employee['姓名']
employee['部门'] = '人事'
print(employee)
------------------------------
'张珊'
{
   '编号': '10932', '姓名': '张珊', '部门': '人事', '电子邮箱': '[email protected]', '电话号码': '18612345678', '身份证号码': '520125197907167551'}

1.2 添加键值对

通过中括号可以增加新的元素,例如雇员信息中,发现少了性别,可以通过下面的方式添加:

employee['性别'] ='女'
employee
---------------------------------
{
   '编号': '10932',
'姓名': '张珊',
'部门': '管理',
'电子邮箱': '[email protected]',
'电话号码': '18612345678',
'身份证号码': '520125197907167551',
'性别': '女'}

1.3 删除键值对

通过del删除字典中某一个键值对:

del employee['性别']
employee
-------------------------
{
   '编号': '10932',
'姓名': '张珊',
'部门': '管理',
'电子邮箱': '[email protected]',
'电话号码': '18612345678',
'身份证号码': '520125197907167551'}

2. 字典类型的操作

函数和方法 描述
.keys() 返回所有的键信息
.values() 返回所有的值信息
.items() 返回所有的键值对
.get(,) 键存在则返回相应值,否则返回默认值
.pop(,) 键存在则返回相应值,同时删除键值对,否则返回默认值
.popitem() 随机从字典中取出一个键值对,以元组(key, value)形式返回
.clear() 删除所有的键值对
del [] 删除字典中某一个键值对
in 如果键在字典中返回True,否则返回False

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

有3 个字典方法,它们将返回类似列表的值,分别对应于字典的键、值和键-值对:keys()、values()和items()。这些方法返回的值不是真正的列表,它们不能被修改,没有append()方法。但这些数据类型(分别是dict_keys、dict_values 和dict_items)可以用于for 循环。

for v in employee.values():
    print(v)
--------------------------
10932
张珊
管理
zhans@163.com
18612345678
520125197907167551
for k in employee.keys():
    print(k)
-----------------------------
编号
姓名
部门
电子邮箱
电话号码
身份证号码
for i in employee.items():
    print(i)
-------------------------------
('编号', '10932')
('姓名', '张珊')
('部门', '管理')
('电子邮箱', '[email protected]')
('电话号码', '18612345678')
('身份证号码', '520125197907167551')

利用keys()、values()和items()方法,循环分别可以迭代键、值或键-值对。请注意,items()方法返回的dict_items 值中,包含的是键和值的元组。

  • 如果希望通过这些方法得到一个真正的列表,就把类似列表的返回值传递给 list函数。
employee.keys()
list(employee.keys())
------
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值