5.2列表与元组(课件)-《程序设计基础(Python)》同步教学(人民邮电版)

2024-08-19
| 26页
| 259人阅读
| 37人下载
普通

内容正文:

第5章 组合数据类型 1 学习目标/Target 了解组合数据类型,能够归纳序列类型、集合类型和映射类型的特点 熟悉切片的基本使用,能够使用切片截取列表或元组的元素 掌握列表的常见操作,能够根据需求选择合适的方法操作列表 掌握列表推导式,能够选择合适的列表推导式构建列表 掌握元组的常见操作,能够通过字面量或tuple()函数创建元组 2 学习目标/Target 掌握集合的常见操作,能够根据需求选择合适的方法操作集合 掌握集合关系测试的方式,能够通过操作符或方法实现集合关系的操作 掌握字典的创建或访问,能够创建字典并根据键访问其对应的值 掌握字典的常见操作,能够根据需求选择合适的方法操作字典 3 章节概述/ Summary 随着大数据时代的到来,计算机在实际应用中需要批量处理相互联系的复杂数据,例如班级学生的基本信息和各科成绩等。为了有效地处理这些数据,Python 提供了组合数据类型。这些数据类型可以同时处理一组数据,简化了开发人员的工作,同时又大大提高了程序的运行效率。本章将全面介绍Python 中的组合数据类型。 4 目录/Contents 01 组合数据类型概述 列表与元素 实例:垃圾分类 02 03 5 目录/Contents 04 集合 字典 实例:手机通讯录 05 06 6 列表与元组 5.2 7 5.2.1 切片 切片是指对序列类型截取其中一部分的操作。 序列[起始索引:结束索引:步长] 起始索引和结束索引用于给定切片截取的范围,该范围属于左闭右开的区间,即包含起始索引,不包含结束索引本身; 步长的取值可以是正整数和负整数,默认值为1。 8 5.2.1 切片 1. 步长为正整数 当切片的步长为正整数时,会按照从左到右的顺序截取元素,每隔“步长-1”个元素进行一次截取。需要注意的是,起始索引应该小于结束索引,否则切片截取的结果为空字符串。 words = '敏而好学不耻下问' print(words[1:6]) # 没指定步长,默认值为1 print(words[1:6:2]) # 指定步长为2 print(words[6:1:2]) # 起始索引大于结束索引,指定步长为2 9 5.2.1 切片 当切片的步长为负整数时,会按照从右到左的顺序截取元素,每隔“步长-1”个元素进行一次截取。需要注意的是,起始索引应该大于结束索引,否则切片截取的结果为空字符串。 words = '敏而好学不耻下问' print(words[6:1:-1]) # 指定步长为-1 print(words[6:1:-2]) # 指定步长为-2 print(words[1:6:-2]) # 起始索引小于结束索引,指定步长为-2 2. 步长为负整数 10 5.2.2 列表 列表字面量是比较简单的创建列表的方式,它直接采用中括号的形式包含零个、一个或多个元素,各元素之间使用英文逗号分隔。 [] # 创建空列表,列表中没有任何元素 [1, 10, 55, 20, 6] # 创建列表,每个元素的类型均为整型 [10, ‘word', True, 3.1415] # 创建列表,每个元素的类型均不同 1. 创建列表 11 5.2.2 列表 通过list()函数可以根据已有的元组、字符串或其他组合数据类型创建列表。如果没有给该函数传入任何组合数据类型,那么会创建一个空列表。 str_demo = '破釜沉舟' print(list(str_demo)) # 根据字符串创建列表 tuple_demo = (1, 3, 5, 7, 9) print(list(tuple_demo)) # 根据元组创建列表 print(list()) # 创建空列表 1. 创建列表 12 5.2.2 列表 使用for语句可以循环对列表中的元素进行遍历操作。 list_demo = list('破釜沉舟') for char in list_demo: # 利用循环遍历列表的全部元素 print(char) 2. 遍历列表 13 5.2.2 列表 在Python中,可以使用索引或切片访问或修改列表中的元素,还可以直接使用运算符+=将一个列表的元素添加到另一个列表的末尾。使用索引或切片操作列表时,如果不对列表元素进行赋值操作,那么会根据索引或切片访问相应元素的值或者截取部分元素;如果对列表元素进行赋值操作,那么会将相应的元素值修改为新赋的值。 3. 修改列表元素 14 5.2.2 列表 nums = [11, 22, 33] nums[0] = 55 # 通过索引获取索引0对应的元素,并重新给元素赋值 print(nums) nums[0:2] = [0, 1] # 通过切片获取索引0、1对应的元素,并重新给这两个元素赋值 print(nums) other_nums = [5, 6] nums += other_nums # 通过+=向nums列表中添加other_nums列表的元素 print(nums) 修改列表元素的示例代码: 3. 修改列表元素 15 5.2.2 列表 需要注意的是,当使用另一个列表来对一个列表的多个元素进行修改时,Python并不要求这两个列表的长度相同,但需要遵循“多增少减”的原则。示例如下: nums = [11, 22, 33] nums[0:2] = [0] # 列表[0]的长度小于nums[0:2]截取结果的长度 print(nums) nums[0:2] = [10, 20, 30] # 列表[10, 20, 30]的长度大于nums[0:2]截取结果的长度 print(nums) 3. 修改列表元素 16 5.2.2 列表 Python针对列表提供了一些函数或方法,以便开发人员能够轻松地操作列表的元素。 函数/方法 功能说明 len(s) 计算序列s的长度或元素个数 min(s) 返回序列s中的最小元素 max(s) 返回序列s中的最大元素 list.append() 在列表的末尾添加元素 list.extend() 在列表中添加另一列表的元素,功能等同于+= list.insert(i) 在列表索引为i的元素之前插入元素 len(s) 计算序列s的长度或元素个数 4. 其他操作 17 5.2.2 列表 Python针对列表提供了一些函数或方法,以便开发人员能够轻松地操作列表的元素。 函数/方法 功能说明 list.pop(i) 取出并删除列表中索引为i的元素 list.remove() 删除列表中第一次出现的元素 list.reverse() 将列表的元素反转 list.clear() 删除列表中的所有元素 list.copy() 生成新列表,并复制列表中的所有元素 list.sort(key, reverse) 将列表中的元素排序。该方法有两个参数,其中参数key用于指定排序的比较方式,默认使用列表的元素进行比较;参数reverse用于指定是否将列表降序排序,默认值为False,表示按照正序方式排列列表的元素 4. 其他操作 18 5.2.2 列表 nums = [0, 5, 10, 33, 8, 19, 25, 6] nums.append(2) # 在列表末尾添加元素2 print(nums) nums.insert(2, 22) # 在列表中索引2元素的前面插入元素22 print(nums) nums.remove(33) # 删除列表中指定的元素33 print(nums) nums.reverse() # 将列表的元素反转 print(nums) nums.sort() # 将列表的元素按从小到大的顺序排序 print(nums) nums.clear() # 删除列表中的所有元素 print(nums) 下面通过示例演示一些方法或函数的使用。 4. 其他操作 19 5.2.3 列表推导式 列表推导式是符合Python语法规则的复合表达式,它能以简洁的方式根据已有的列表构建满足特定需求的新列表。列表推导式的基本语法格式如下: [表达式 for 临时变量 in 目标对象] 例如,通过列表推导式构建新列表,新列表中的元素是其他列表中每个元素值的平方: ls = [1, 2, 3, 4, 5, 6, 7, 8] new_ls = [temp * temp for temp in ls] # 通过列表推导式构建新列表 print(new_ls) 20 5.2.3 列表推导式 1. 带if语句的列表推导式 在基本列表推导式的for语句之后添加一个if语句,就组成了带if语句的列表推导式,其语法格式如下: [表达式 for 临时变量 in 目标对象 if 判断条件] 例如,通过带if语句的列表推导式构建新列表,新列表中只保留列表ls中大于4的元素: new_ls = [temp for temp in ls if temp > 4] print(new_ls) 21 5.2.3 列表推导式 在基本列表推导式的for语句之前添加一个if-else语句,就组成了带if-else语句的列表推导式,其语法格式如下: [表达式1 if 判断条件 else 表达式2 for 临时变量 in 目标对象] 例如,通过带if-else语句的列表推导式构建新列表,新列表中保留列表ls中值为偶数的元素,以及值为奇数时加1的结果,具体代码如下: new_ls = [temp if temp % 2 == 0 else temp + 1 for temp in ls] print(new_ls) 2.带if-else语句的列表推导式 22 5.2.3 列表推导式 在基本列表推导式的for语句之后添加一个for语句,就组成了带for循环嵌套的列表推导式,其语法格式如下: [表达式 for 临时变量1 in 目标对象1 for 临时变量2 in 目标对象2] 例如,取列表ls_one和列表ls_two中元素的和作为列表ls_three的元素,示例代码如下: ls_one = [1, 2, 3] ls_two = [3, 4, 5] ls_three = [x + y for x in ls_one for y in ls_two] print(ls_three) 3.带for循环嵌套的列表推导式 23 5.2.4 元组 元组与列表类似,它也是由一组按特定顺序排列的元素组成,元素的个数、类型不受限制,但其存储的元素不能修改。 Python中创建元组的方式非常简单,可以直接通过元组字面量创建,元组字面量使用小括号包含零个、一个或多个元素,多个元素之间使用逗号分隔。非空元组的括号可以省略,但空元组的括号不能省略。 () # 创建空元组 (1, ) # 创建包含一个元素的元组 1, # 创建包含一个元素的元组,省略括号 (1, 2, 3) # 创建包含多个元素的元组 1, 2, 3 # 创建包含多个元素的元组,省略括号 24 5.2.4 元组 此外,使用tuple()函数可以根据已有的列表、字符串或其他组合数据类型创建元组。如果没有给tuple()函数传入任何组合数据类型,那么会创建一个空元组,示例如下: str_demo = '破釜沉舟' print(tuple(str_demo)) # 根据字符串创建元组 list_demo = [1, 3, 5, 7, 9] print(tuple(list_demo)) # 根据列表创建元组 print(tuple()) # 创建空元组 25 5.2.4 元组 元组在表达固定数据、多变量同步赋值、循环遍历、函数多返回值等情况下是十分有用的,示例代码如下: x, y = (10, 20) # 多个变量同步赋值 print(x, y) for x, y in ((10, 20), (11, 21), (12, 22)): # 循环遍历元组 print(x, y) 26 $$

资源预览图

5.2列表与元组(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
1
5.2列表与元组(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
2
5.2列表与元组(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
3
5.2列表与元组(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
4
5.2列表与元组(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
5
5.2列表与元组(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。