安迪Python

V1

2022/10/14阅读:21主题:默认主题

35. Python数据类型之字典

35. Python数据类型之字典

1. Python的数据类型

Python中有8种常见的数据类型:

35-1
35-1

【数据类型数据】

1.字符串:str,用引号括起来的内容。
2.整数:int,没有小数点的数字。
3.浮点数:float,有小数点的数字。
4.布尔类型:bool,只有2个值(True 和 False)。

【容器类型的数据】

5.列表:list。
6.元组:tuple。
7.字典:dict。
8.集合

2. 什么是字典

dictionary[ˈdɪkʃənri]:字典。

在Python中,dictionary通常简写为dict,例如class 'dict'>表示数据类型为字典。

字典(dict)是可迭代的,可变的容器类型的数据。

3. 字典存储的数据

字典存储的是多对对应关系的数据。

注意两个关键点:多对和对应。

【什么是对应关系的数据】

每个城市有自己的邮编,城市名和邮编号码就是一组对应的数据。

类似的对应数据还有:

  1. 商品—价格

可乐:5元
矿泉水:2元
酸奶:6元

  1. 科目-成绩

语文:80分
数学:90分
英语:70分

  1. 姓名—个人信息

张三:男,23岁,北京人,学生
李四:女,35岁,上海人,老师

4. 字典的语法

字典中的1个元素就是1对数据。

这对数据分别被称为键(key)值(value)

字典的元素称为键值对(key-value)

字典主要由5部分构成:

  1. 英文大括号{ }
  2. 字典的键
  3. 键与值之间用英文冒号:隔开
  4. 字典的值
  5. 元素之间用英文逗号,分隔
35-2字典语法
35-2字典语法

5. 新建字典

5.1 用{ }新建一个空字典

英文大括号中一个元素也没有,就是一个空字典。

# 新建一个空字典
none_dict = { } 

# 查看字典
print(none_dict)

# 查看数据类型
print(type(none_dict))

【终端输出】

{}
<class 'dict'>

none[nʌn]:无,没有,默认值。

【代码解析】

none_dict是我给字典起的名字。

=是赋值符号。

{ }表示一个空字典。

5.2 新建一个存储城市邮政编码的字典

# 新建一个字典
code_dict = {"北京":100000,  "上海":200000,  "广州":510000}

# 查看字典
print(code_dict)

# 查看字典的数据类型
print(type(code_dict))

【终端输出】

{'北京': 100000, '上海': 200000, '广州': 510000}
<class 'dict'>

【温馨提示】type是查询数据类型的函数。

code[kəʊd]:密码、编码。

zip code:邮政编码。

【代码解析】

code_dict 是我给字典起的名字。

=是赋值符号。

字典用大括号{ }表示。

"北京"是字典第1个元素的

键与值之间用英文冒号:隔开,即"北京"100000之间用英文冒号:隔开;

100000是字典第一元素的

两个元素之间用英文逗号,分隔,即100000"上海"之间有1个英文逗号。

上述字典有3个元素,即有3个键值对,分别为:

第1个键值对:"北京":100000
第2个键值对:"上海":200000
第3个键值对:"广州":510000

"北京"、"上海"、"广州"是,数据类型为字符串。
100000,200000,510000是,数据类型为整数。

5.3 新建一个存储股票名称的字典

# 新建一个字典
stock_dict = {
     600000:"浦发银行"
     600036:"招商银行"
     600048:"保利地产",
     '000001':"平安银行"
}

# 查看字典
print(stock_dict)

# 查看字典的数据类型
print(type(stock_dict))

【终端输出】

{600000: '浦发银行', 600036: '招商银行', 600048: '保利地产', '000001': '平安银行'}
<class 'dict'>

【代码解析】

stock [stɒk]:股票。

stock_dict 是我给字典起的名字。

=是赋值符号。

字典用大括号{ }表示。

600000是字典第一个元素的

键与值之间用英文冒号:隔开,即'浦发银行'600036之间用英文冒号:隔开。

'浦发银行'是字典第1个元素的值。

两个元素之间用英文逗号,分隔,即100000"上海"之间有1个英文逗号。

上述字典有4个元素,即有4个键值对,分别为:

第1个键值对:600000: '浦发银行'
第2个键值对:600036: '招商银行'
第3个键值对:600048: '保利地产'
第4个键值对:'000001': '平安银行'

600000,600036,600048,'000001'是字典的键,数据类型有整数和字符串。

'浦发银行','招商银行', '保利地产', '平安银行'是字典的值,数据类型为字符串。

6. 字典元素的数据类型

字典的的数据类型必须是不可变数据类型:

  1. 字符串
  2. 元组
  3. 整数
  4. 浮点数
  5. 布尔类型

字典的的数据类型可以是任意数据类型,因此字典也可以作为字典中的值。

7. 列表、元组是有序的,字典是无序的

【任务】用==验证列表、字典的有序无序。

# 列表是有序的,元素位置不同,则列表不同
student_list1 = ['姓名''张三' ,'学号' ,'001' ,'总成绩'480]  
student_list2 = ['学号' ,'001' ,'总成绩'480,'姓名''张三' ]  
print(student_list1 == student_list2)

# 字典是无序的,只要键值对一致,则两个字典相等
student_dict1 = {'姓名':'张三','学号':'001','总成绩':480}  
student_dict2 = {'学号':'001','总成绩':480,'姓名':'张三'}  
print(student_dict1 == student_dict2)

【终端输出】

False
True

上述2个列表和字典的元素内容都是一致的,只是顺序不相同。

我们用比较运算符==分别判断两个列表、两个字典是否相等。

列表的比较结果显示为false,表示两个列表不相等,因此列表是有序的,元素顺序不一致即为不同的列表。
字典的比较结果显示为true,表示两个字典相等,因此字典是无序的,只有元素内容相同即为同一个字典。

8. 课后练习

新建一个字典info_dict,字典有3个键值对,内容如下:

  1. 基本信息:张三,男,1990年
  2. 兴趣爱好:篮球,吉他,Python
  3. 联系方式:电话号码:18088889999,邮箱:77997799@qq.com

【思路解析】

字典的3个键:

  1. 基本信息

  2. 兴趣爱好

  3. 联系方式

数据类型均为字符串。

字典的3个值:

  1. 张三,男,1990年

【备注】第1个键值对的值含有3项并列的内容,可以用列表或元组将3个内容包含在一起。

  1. 篮球,吉他,Python

【备注】第2个键值对的值含有3项并列的内容,可以用列表或元组将3个内容包含在一起。

  1. 电话号码:18088889999,邮箱:77997799@qq.com

【备注】第3个键值对的值含有的内容是一一对应的,即电话号码对应18088889999,邮箱对应77997799@qq.com,因此用这里要用字典将2组对应的内容包含在一起。

【参考答案】

第1步

先写一个空字典。我初学的时候通常会在大括号中间按一个回车,主要是为了让多个元素对仗工整,方便查找错误。

info_dict = {
    
}

第2步

在空白的代码行光标出现写入
写入英文冒号:
在冒号后写入
在前2个元素之间写入一个英文逗号,

我初学字典的时候经常犯的错误是冒号和逗号经常用错,因此用了这样的方法避免出错。此方法不定是最好的方法,也不适合所有人,仅供大家参考。

info_dict = {
    '基本信息':('张三','男','1990年'),
    '兴趣爱好':['篮球','吉他','Python'],
    '联系方式':{'电话号码':18088889999,'邮箱':'77997799@qq.com'}
}

# 查看字典
print(info_dict)

【终端输出】

{'基本信息': ('张三', '男', '1990年'), '兴趣爱好': ['篮球', '吉他', 'Python'], '联系方式': {'电话号码': 18088889999, '邮箱': '77997799@qq.com'}}

9. 总结

35-3字典总结1
35-3字典总结1

分类:

后端

标签:

Python

作者介绍

安迪Python
V1