【Python使用】嘿马python基础入门全体系教程第6篇:容器:字符串、列表、元组、字典,元组【附代码文档】

举报
程序员一诺python 发表于 2025/08/12 13:34:04 2025/08/12
【摘要】 1.Python函数高级特性包括匿名函数(lambda语法格式、与普通函数区别、应用场景、参数形式)。2. 文件操作涵盖文件打开关闭、文件读写(write写数据、readlines读数据)。3. 面向对象编程包括类和对象(类定义、对象创建、类对象关系)、类构成、self关键字、对象属性操作、构造方法__init__、字符串方法__str__、多继承、子类重写、多态概念及应用、类

教程全知识点简介:1.Python函数高级特性包括匿名函数(lambda语法格式、与普通函数区别、应用场景、参数形式)。2. 文件操作涵盖文件打开关闭、文件读写(write写数据、readlines读数据)。3. 面向对象编程包括类和对象(类定义、对象创建、类对象关系)、类构成、self关键字、对象属性操作、构造方法__init__、字符串方法__str__、多继承、子类重写、多态概念及应用、类属性和实例属性、静态方法和类方法。4. 异常处理涵盖异常传递(try嵌套、函数嵌套调用)、自定义异常抛出。5. 模块系统包括Python模块概念、import导入机制、学生管理系统应用。6. 计算机基础涉及计算机组成、硬件系统、程序处理机制、编程语言概念、Python介绍、解释器作用。7. Python语法基础包括注释分类、输出(格式化输出、转义字符、结束符)、输入语法、数据类型转换、运算符(算数运算符)。8. 控制流程涵盖判断语句(if语句、if-else、if-elif-else、三目运算、if嵌套)、循环语句(while循环、for循环、break和continue)。9. 数据容器包括字符串操作(rfind、partition、splitlines、isalpha、isdigit)、列表(列表格式、相关操作、循环遍历、嵌套)、元组、字典(键值访问)、公共方法、容器类型转换、推导式(列表推导式、多for循环)。10. 函数进阶涵盖函数返回值、函数文档说明、函数嵌套调用、变量作用域(局部变量、全局变量、global关键字)、拆包和变量交换、引用概念、可变不可变类型、函数使用注意事项

👉👉👉   https://gitee.com/yinuo112/Backend/blob/master/Python/嘿马python基础入门全体系教程/note.md

容器:字符串、列表、元组、字典


学习目标:

  1. 能够说出容器类型有什么用
  2. 能够说出常用 Python 容器的名字
  3. 能够说出切片语法的用途
  4. 能够说出容器中的索引指的是什么
  5. 能够说出如何定义一个字符串
  6. 能够说出字符串容器的特性
  7. 能够说出至少5个字符串方法名字和作用
  8. 能够使用切片语法获得指定索引区间的子串
  9. 能够说出如何使用 while 和 for 循环来遍历字符串
  10. 能够说出如何定义一个列表
  11. 能够说出列表容器和字符串容器的区别
  12. 能够说出至少5个列表方法名字和作用
  13. 能够使用切片语法获得列表指定索引区间的元素
  14. 能够说出如何使用 while 和 for 循环来遍历列表中的元素
  15. 能够说出如何定义一个列表
  16. 能够说出元组和列表的区别
  17. 能够说出如何使用 while 和 for 循环来遍历元组中的元素
  18. 能够说出元组支持哪些操作
  19. 能够说出如何定义一个字典
  20. 能够说出字典和列表的区别
  21. 能够说出如何使用 for 循环来遍历列表中的键、值和键值对
  22. 能够说出字典键和值的特点

元组

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

定义元组:

元组特点:定义元组使用小括号,且逗号隔开各个数据,数据可以是不同的数据类型。

>>> aTuple = ('et',77,99.9)
>>> aTuple
('et',77,99.9)
>>> aTuple = (10,)

注意:如果定义的元组只有一个数据,那么这个数据后面也好添加逗号,否则数据类型为唯一的这个数据的数据类型

<1>访问元组(下标访问)1>

<2>修改元组2>

说明: python中不允许修改元组的数据,包括不能删除其中的元素。

<3>count, index, len3>

index():查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index方法相同。

count():统计某个数据在当前元组出现的次数。

len():统计元组中数据的个数。

>>> a = ('a', 'b', 'c', 'a', 'b')
>>> a.index('a', 1, 3) # 注意是左闭右开区间
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: tuple.index(x): x not in tuple
>>> a.index('a', 1, 4)
3
>>> a.count('b')
2
>>> a.count('d')
0
>>> print(len(a))

注意

但是如果元组里面有列表,修改列表里面的数据则是支持的,故自觉很重要

tuple2 = (10, 20, ['aa', 'bb', 'cc'], 50, 30)
print(tuple2[2])  # 访问到列表



# 结果:(10, 20, ['aaaaa', 'bb', 'cc'], 50, 30)


tuple2[2][0] = 'aaaaa'
print(tuple2)

字典介绍

想一想:

如果有列表

nameList = ['xiaoZhang', 'xiaoWang', 'xiaoLi'];

需要对"xiaoWang"这个名字写错了,通过代码修改:

nameList[1] = 'xiaoxiaoWang'

如果列表的顺序发生了变化,如下

nameList = ['xiaoWang', 'xiaoZhang',  'xiaoLi'];

此时就需要修改下标,才能完成名字的修改

nameList[0] = 'xiaoxiaoWang'

有没有方法,既能存储多个数据,还能在访问元素的很方便就能够定位到需要的那个元素呢?

答:

字典

另一个场景:

学生信息列表,每个学生信息包括学号、姓名、年龄等,如何从中找到某个学生的信息?

>>> studens = [[1001, "王bao强", 24], [1002, "马rong", 23], [1005, "宋x"24], ...]

循环遍历? No!

1. 生活中的字典

2. 软件开发中的字典

变量info为字典类型:

info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}

说明:

  • 字典和列表一样,也能够存储多个数据
  • 列表中找某个元素时,是根据下标进行的
  • 字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值,例如上面代码中的'name'、'id'、'sex')
  • 字典的每个元素由2部分组成,键:值。例如 'name':'班长' ,'name'为键,'班长'为值

创建字典

字典特点:

  • 符号为大括号
  • 数据为键值对形式出现
  • 各个键值对之间用逗号隔开
# 有数据字典


dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}



# 空字典


dict2 = {}

dict3 = dict()

注意:一般称冒号前面的为键(key),简称k;冒号后面的为值(value),简称v。

3. 根据键访问值

info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}

print(info['name'])
print(info['address'])

结果:

班长
地球亚洲中国北京

若访问不存在的键,则会报错:

>>> info['age']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值:

>>> age = info.get('age')
>>> age #'age'键不存在,所以age为None
>>> type(age)
<type 'NoneType'>
>>> age = info.get('age', 18) # 若info中不存在'age'这个键,就返回默认值18
>>> age
18

字典的常见操作1

<1>查看元素1>

除了使用key查找数据,还可以使用get来获取数据

demo:

info = {'name':'吴彦祖','age':18}

    print(info['age']) # 获取年龄

    # print(info['sex']) # 获取不存在的key,会发生异常

    print(info.get('sex')) # 获取不存在的key,获取到空的内容,不会出现异常

<2>修改元素2>

字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改

demo:

info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}

    newId = input('请输入新的学号')

    info['id'] = int(newId)

    print('修改之后的id为%d:'%info['id'])

结果:

<3>添加元素3>

demo:访问不存在的元素

info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}

    print('id为:%d'%info['id'])

结果:

如果在使用 变量名['键'] = 数据时,这个“键”在字典中,不存在,那么就会新增这个元素

demo:添加新的元素

info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}

    # print('id为:%d'%info['id'])#程序会终端运行,因为访问了不存在的键

    newId = input('请输入新的学号')

    info['id'] = newId

    print('添加之后的id为:%d'%info['id'])

结果:

请输入新的学号188
    添加之后的id为: 188

<4>删除元素4>

对字典进行删除操作,有一下几种:

  • del
  • clear()

demo:del删除指定的元素

info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}

    print('删除前,%s'%info['name'])

    del info['name']

    print('删除后,%s'%info['name'])

结果

demo:del删除整个字典

info = {'name':'monitor', 'sex':'f', 'address':'China'}

    print('删除前,%s'%info)

    del info

    print('删除后,%s'%info)

结果

demo:clear清空整个字典

info = {'name':'monitor', 'sex':'f', 'address':'China'}

    print('清空前,%s'%info)

    info.clear()

    print('清空后,%s'%info)

结果

字典的常见操作2

<1>len()1>

测量字典中,键值对的个数

[Real Python 教程]

![](https://fileserver.developer.huaweicloud.com/FileServer/getFile/communitytemp/20250812/community/383/461/571/0001696944383461571.20250812053343.91652519206641987457441708129009:20250812063344:2415:5AD8C6E6126CAF851A26534

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。