Python语言学习笔记
数据容器-列表列表的常见方法方法作用样例append()在列表尾部追加元素s.append(10000)insert()在指定索引之前插入该元素s.insert092s.insert(索引元素remove()移除列表中第一个匹配到的值s.remove(75)pop()删除列表中指定索引位置的元素(未指定索引删除最后一个s.pop(2) / s.pop()sort()对列表进行排序(列表元素数据类型一致才可进行排序)s.sort()reverse()反转列表元素s.reverse()s[56,90,88,65,90,100,200,72,145] print(s) s.append(188) print(s) s.insert(2,80) print(s) s.remove(90) print(s) es.pop(1) print(e) es.pop() print(e) s.sort() print(s) s.reverse() print(s) [56, 90, 88, 65, 90, 100, 200, 72, 145] [56, 90, 88, 65, 90, 100, 200, 72, 145, 188] [56, 90, 80, 88, 65, 90, 100, 200, 72, 145, 188] [56, 80, 88, 65, 90, 100, 200, 72, 145, 188] 80 188 [56, 65, 72, 88, 90, 100, 145, 200] [200, 145, 100, 90, 88, 72, 65, 56]Python中用于数据统计的常见语句min()获取最小值min(s)max()获取最大值max(s)len()获取元素个数len(s)sum()求和sum(s)列表案例案例1将用户输入的10个数字存储到一个列表中并将列表中的数字进行排序输出其中最小值、最大值和平均值。#1.定义列表 num_list [] #2.将用户输入10个数字存入列表 for i in range(10): numint(input(请输入一个有效数字)) num_list.append(num) print(数字列表,num_list) #排序 num_list.sort() print(排序后的数字列表,num_list) #4.输入其中的最小值、最大值和平均值 print(最小值,num_list[0]) print(最大值:,num_list[-1]) print(平均值,sum(num_list)/len(num_list))备注定义 列表循环输入数字append方法存入列表打印列表sort方法给列表排序根据索引列出最小值和最大值、平均值。案例2合并两个列表中的元素并对合并的结果进行去重处理去除列表中的重复元素。num_list1 [19,23,54,64,875,20,109,232,123,54] num_list2 [5, 80,72, 35, 60,123, 54, 29, 91] #1.合并列表 #解包将列表这一容器解开成一个一个独立元素 #组包将多个值合并到一个容器 #合并方法1解包组包 num_list[*num_list1,*num_list2] #合并方法2遍历列表元素后append添加 num_listnum_list1num_list2 #合并方法3遍历列表元素后append添加 for num in num_list1: num_list2.append(num) #去除重复记录 new_list[]#去除重复记录后的列表 for num in num_list: if num not in new_list: #去重 new_list.append(num) print(new_list)解包将列表这一容器解开成一个一个独立元素*num_list1*num_list2组包将多个值合并到一个容器num_list[*num_list1,*num_list2]案例2知识点1.如何快速合并两个列表使用运算符直接合并使用*进行解包操作解包指将列表这一类数据容器解开成独立的元素2.如何判断一个元素是否存在于列表之中可以使用in运算符语法为 元素 in 列表返回结果为布尔值True表示存在False表示不存在案例3生成1-20平方列表方式一传统方式num_list[] for i in range(1,21): num_list.append(i**2) print(num_list)方式二列表推导式---就是按照一定的方式生成一个列表的方式--语法格式1[要插入的值 for i in 序列/列表]num_list2 [i**2 for i in range(1,21)] print(num_list)案例4从如下数字列表中提取所有偶数并计算其平方组成一个新的列表方式一列表推导式---就是按照一定的方式生成一个列表的方式-语法格式2[要插入的值for i in序列/列表if条件]num_list[12,32,45,77,80,92,33,57,97,98]new_list[i**2for i innum_listif i%20]print(new_list)列表练习题数据容器-字符串介绍字符串是字符的容器一个字符串可以存放任意数量的字符。特点:不可变性无法修改、有序性、可迭代性可以遍历 。字符串中的每个一个字符元素都有其对应的下标索引通过元素对应的索引就可获取到对应的元素。字符串的特点不可变性无法修改s Hello Python print(s[4]) # Forward indexing print(s[-8]) # Reverse indexing s[4] X print(s)bash C:\Users\xxx\AppData\Roaming\Python\Scripts\uv.exe run D:/develop/Python/Python314/python.exe C:\Users\wangy\PycharmProjects\test\lesson\data-container-str.py o Traceback (most recent call last): File C:\Users\wangy\PycharmProjects\test\lesson\data-container-str.py, line 5, in module s[4] X ~^^^ TypeError: str object does not support item assignment Process finished with exit code 1可迭代性s Hello Pythonfor i in s:print(i)有序性字符串的索引正向索引从0开始反向索引从-1开始字符串的切片语法s[start:end:step]start开始索引不指定默认为0第一个元素的索引end结束索引不指定默认为-1最后一个元素的索引step步长不指定默认为1-1表示从后向前s Hello Python #切片 print(s[0:5:1]) print(s[:5:1]) print(s[:5:]) print(s[:5]) print(s[6:12:2]) #结束位置11索引位1 才能包含 print(s[12:6:-1]) #开始索引和结束索引必须与步长方向保持一致 print(s[6::1]) #从6开始到末尾 print(s[6::]) #从6开始到末尾 print(s[-6:]) # 从后往前数6个 print(s[::-1]) #反转字符串的常用方法方法作用样例find()在字符串中查找子串返回第一次出现的索引位置找不到返回-1s.find(Python)count()统计子串在字符串中出现的次数s.count(H)upper()将字符串中的所有字母转换为大写s.upper()lower()将字符串中的所有字母转换为小写s.lower()split()将字符串指定分隔符分割成列表s.split( )strip()去除字符串两端的空白字符或指定字符s.strip()/s.strip(*)replace()将字符串中的子串替换为新的子串s.replace(H,C)startswith()检查字符串是否以指定子串开头返回布尔值s.startswtich(P)字符串案例1邮箱格式验证用户输入一个邮箱验证邮箱格式是否正确(包含一个和至少一个·)如果输入正确输出邮箱格式正确否则输出邮箱格式错误。#方式一: mail input(请输入邮箱) if mail.count() 1 and mail.count(.) 1: print(f{mail}的邮箱格式正确) else: print(f{mail}的邮箱格式错误)#方式二in 运算符 mail input(请输入邮箱) if mail.count() 1 and mail.count(.) 1: if mail.count() 1 and . in mail: print(f{mail}的邮箱格式正确) else: print(f{mail}的邮箱格式错误)1如何判断指定的子字符串是否出现在字符串之中in 运算符返回bool值s Hello Python r H in s print(r)1输入一个字符串判断该字符串是否是回文两边对称黄山落叶松叶落山黄上海自来水来自海上str input(请输入字符串:) if str str[::-1]: print(f{str}是回文) else: print(f{str}不是回文)2将用户输入的10个字符串反转后全部转换为大写然后记录在列表中最后将列表内容遍历输出出来。基础版本直接实现需求strings [] for i in range(10): s input(f请输入第{i1}个字符串: ) strings.append(s) 2. 反转并转换为大写存入新列表 result [] for s in strings: reversed_upper s[::-1].upper() result.append(reversed_upper) 3. 遍历输出 for item in result: print(item)精简版本列表推导式# 1. 接收用户输入的10个字符串 strings [input(f请输入第{i1}个字符串: ) for i in range(10)] 2. 使用列表推导式将每个字符串反转并转换为大写 result [s[::-1].upper() for s in strings] 3. 遍历输出处理后的结果 for item in result: print(item)增强版本带序号输出 输入验证strings [] for i in range(10): s input(f请输入第{i1}个字符串: ) # 可选去除首尾空格 strings.append(s.strip()) # 反转并转大写 result [s[::-1].upper() for s in strings] # 带序号遍历输出 for index, item in enumerate(result, start1): print(f第{index}个处理结果: {item})