• 第六章——Python数据容器


    01-数据容器入门

    学习目标:了解数据容器是什么

    02-列表的定义语法

    基础定义讲解,不用看第二遍,但需要记住,课程没有太多需要理解的内容。

    03-列表的下标索引

    取出元素的时候不要超出元素下表的范围

    在实践的过程中,还是会有点问题。

    一开始我在【】两端加了单引号,导致嵌套不成功。


    04-列表的常用操作方法

    list内部提供了一系列可供我们使用的函数。后面会详细讲解类和方法,这里会使用就可以的。

    使用index函数输出列表中元素的下标索引。

    修改下标索引。

    从前向后搜索,找到第一个可以移除的元素。示例如下:

    列表的常见方法都是使用列表的名称加上一个点,然后引用这个方法。

    05-列表的常用操作课后练习
    1. # 1、定义一个列表,用变量接收它
    2. my_list = ["i", 'love', 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4]
    3. # 2、追加数字到列表尾部。
    4. my_list.append(31)
    5. print(my_list)
    6. # 3、追加新列表到列表尾部。
    7. my_list.append([166, 666, 888])
    8. print(my_list)
    9. # 4、取出第一个元素
    10. num = my_list[0]
    11. print(f"从列表中取出来第1个元素,应该是i,实际上是{num}")
    12. # 5、取出最后一个元素。
    13. num1 = my_list[-1]
    14. print(f"从列表中取出来第最后的元素是{num1}")
    15. # 6、查找元素9,在列表中的下标位置。
    16. print(my_list.index(9))
    17. # 最后的列表内容
    18. print(my_list)
    06-列表的循环遍历

    1. def list_while_func():
    2. my_list = ["教育", "黑马程序", "python"]
    3. index = 0
    4. while index < len(my_list):
    5. i = my_list[index]
    6. print(i)
    7. index += 1
    8. list_while_func()

    不论是定义的函数,还是引用的函数,都需要间隔两行。不然会有虚黄线报错,格式有问题。

    for循环会用的比较多一些。

    1. my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    2. my_new = []
    3. for element in my_list:
    4. if element % 2 == 0:
    5. my_new.append(element)
    6. print(my_new)
    07-元组的定义和操作

    1. """
    2. 元组的基本操作
    3. 定义一个元组,内容是: () ,记录的是一个学生的信息(姓名,年龄,爱好)
    4. 请通过元组的功能(方法),对其进行。
    5. 1、查询其年龄所在的下标位置
    6. 2、查询学生的姓名
    7. 3、删除学生爱好中的football
    8. 4、增加爱好: coding到爱好list
    9. """
    10. # 定义一个元组,内容是: ('周杰伦', 11, ['football', 'music']) ,记录的是一个学生的信息(姓名,年龄,爱好)
    11. tuple1 = ('周杰伦', 11, ['football', 'music'])
    12. # 1、查询其年龄所在的下标位置
    13. age = tuple1.index(11)
    14. print(age)
    15. # 2、查询学生的姓名
    16. name = tuple1[0]
    17. print(name)
    18. # 3、删除学生爱好中的football
    19. del tuple1[2][0]
    20. print(tuple1)
    21. tuple1[2].pop(0) # 这两个效果一样
    22. print(tuple1)
    23. # 4、增加爱好: coding到爱好list
    24. tuple1[2].insert(1, "coding") # 先写出前边的【2】,然后才能定位到list
    25. print(tuple1)

    元组内嵌套的list是可以修改的。

    08-字符串的定义和操作

    学习目标:以数据容器的视角来学习字符串,并掌握常见操作。

    字符串,没法修改。为只读的。

    示例演示。

    分割,

    遍历——while和for,跟之前列表和元组一样的


    09-字特串的课后练习讲解

    split后面,使用、\ | 空格,等,分割后的效果一样,咋解释?

    10-数据容器(序列) 的切片

    注:此操作不影响序列本身,而是会得到一个新序列。

    11-序列的切片课后练习讲解
    1. """
    2. 演示序列的切片的课后练习
    3. "万过薪月,员序程马黑来,nohtyp学"
    4. """
    5. my_str = "万过薪月,员序程马黑来,nohtyp学"
    6. # 倒序字符串,切片取出。
    7. result1 = my_str[::-1][9:14]
    8. print(f"方式1的结果是:{result1}")
    9. # 切片取出,然后倒序
    10. result2 = my_str[5:10][::-1]
    11. print(f"方式2的结果是:{result2}")
    12. # split分割,”,“ replace 替换”来“为空,倒序字符串。
    13. result3 = my_str.split(",")[1].replace("来", "")[::-1]
    14. # split后面括号中的内容,我当时用的英文下的逗号,会报错,主要是没有和字符串中定义的一样。。
    15. print(f"方式3的结果是:{result3}")

    标点符号应该不算是字符串的,英语单词中,一个字母一个字符串元素。

    12-集合的定义和操作

    集合不是序列

    1. set1 = {1, 2, 3}
    2. set2 = {1, 5, 6}
    3. set3 = set1.difference(set2) # set1中有但是set2中没有的。
    4. print(set3)
    5. print(set2)
    6. print(set1)

    1. set1 = {1, 2, 3}
    2. set2 = {1, 5, 6}
    3. set3 = set1.union(set2) #
    4. print(set1)
    5. print(set2)
    6. print(set3)

    练习题

    13-集合的课后练习
    1. my_list = ['黑马程序', '传智播客', ' 您好呀', '黑马程序', 'best', 'best']
    2. my_list_new = set()
    3. for x in my_list:
    4. my_list_new.add(x)
    5. print(my_list_new)

    my_list_new .add()   不用新的变量接收。

    14 -字典的定义

    与集合不同的地方,可以通过key,来查value。

    基于key,找value。

    嵌套,定义。

    从定义的嵌套字典中,获取信息。


    15-字典的常用操作

    从定义的嵌套字典中,获取信息。

    增加和更新的操作是一样的,只不过是,key是不是新的,原来有的话,就是更新,原来没有key的话,就是新增。

    练习案例

    16-字典课后练习讲解
    1. all_staff = {
    2. '王力鸿': {
    3. '部门': '科技部',
    4. '工资': 4000,
    5. '级别': 1},
    6. "周杰轮": {
    7. '部门': '科技部',
    8. '工资': 3000,
    9. '级别': 2},
    10. "林俊节": {
    11. '部门': '科技部',
    12. '工资': 6000,
    13. '级别': 3},
    14. "张学油": {
    15. '部门': '科技部',
    16. '工资': 5000,
    17. '级别': 4},
    18. "刘德滑": {
    19. '部门': '科技部',
    20. '工资': 7000,
    21. '级别': 5}
    22. }
    23. for name in all_staff:
    24. if all_staff[name]["级别"] == 1:
    25. all_staff[name]["级别"] = 2
    26. all_staff[name]["工资"] += 1000
    27. print(all_staff)

    觉得课程中没有我写的for循环好,哈哈。

    17-5类数据容器的总结对比

    18-数据容器的通用操作

    练习,演示

    1. my_list = [1, 2, 3, 4, 5]
    2. my_tuple = (1, 2, 3, 4, 5)
    3. my_str = "abcdefg"
    4. my_set = {1, 2, 3, 4, 5, 6}
    5. my_dict = {"key1": 1, "key2": 2, "key3": 3, "key4": 4, "key5": 5}
    6. # len() 元素个数
    7. print(len(my_dict))
    8. print(len(my_list))
    9. print(len(my_str))
    10. print(len(my_set))
    11. print(len(my_tuple))
    12. # max 最大元素
    13. print(max(my_dict))
    14. print(max(my_list))
    15. print(max(my_str))
    16. print(max(my_set))
    17. print(max(my_tuple))
    18. # max 最小元素
    19. print(min(my_dict))
    20. print(min(my_list))
    21. print(min(my_str))
    22. print(min(my_set))
    23. print(min(my_tuple))

    1. print(tuple(my_list))
    2. print(tuple(my_set))
    3. print(tuple(my_str))
    4. print(tuple(my_dict))
    5. print(tuple(my_tuple))
    6. print(str(my_list))
    7. print(str(my_set))
    8. print(str(my_str))
    9. print(str(my_dict))
    10. print(str(my_tuple))

    知道有这些功能就行。

    进行重新排序,排序后,都变成列表对象。 

    进行降序排序。


    19-拓展-字符串大小比较的方式

     

  • 相关阅读:
    掷骰子的多线程应用程序1(复现《Qt C++6.0》)
    前端多环境部署
    【人工智能】确定型推理
    2023年10月13日历史上的今天大事件早读
    基于OpenHarmony的智能阳台
    dB,dBm,W,mW,V之间的转换
    【python笔记】第七节 散列类型与格式化输出
    挑战杯 机器视觉人体跌倒检测系统 - opencv python
    CSDN 大规模抓取 GitHub 上的项目到 GitCode,伪造开发者主页引公愤
    EMG信号的低通滤波器的matlab仿真实现
  • 原文地址:https://blog.csdn.net/FRANKBANG/article/details/133905931