""" Auther:少校 Time:2025/4/9 17:30 越努力,越幸运 """ # 1.用map()将字符串列表转为整数列表 nums = ['123', '19', '8', '192', '982', '77'] print(list(map(lambda x:int(x),nums))) # 2.用filter()提取列表中的质数 def zhi(num1:int): for x in range(2,num1): if num1 % x == 0: return False return True print(list(filter(lambda x: zhi(int(x)), nums))) # 3.用reduce()计算列表元素的乘积 from functools import reduce print(reduce(lambda i, x: int(x) * i, nums, 1)) # 4.用sorted()按字符串最后一个字符排序 print(list(sorted(nums,key=lambda x: x[-1]))) # 5.用sorted()按文件扩展名排序文件名列表 list1=["1.exe","3.pdf","4.html","5.txt","6.php","7.txt","8.php"] print(list(sorted(list1,key=lambda x: x.split(".")[-1]))) # 6.用map()对字典的值进行平方运算 dict1={"张三":1,"李四":2,"王五":3} print(list(map(lambda x: x ** 2, dict1.values()))) # 7.用filter()筛选出有效的邮箱地址 list1=["abc@qq.com","张三丰还有一个邮箱cccc@qq.com就是这个"] from re import fullmatch,split print(list(filter(lambda x:fullmatch(r"[A-Za-z\d_]+@[a-z\d_]+\.com|cn|net|org|cc|vip|top", x), list1))) # 8.用reduce()拼接字符串列表 nums = ['123', '19', '8', '192', '982', '77'] print(reduce(lambda i, x: i + x, nums, "")) # 9.用sorted()按字典的值降序排序 dict1={"张三":1,"李四":2,"王五":3} print(sorted(dict1,key=lambda x:dict1[x] ,reverse=True)) # 10.用reduce()计算列表的几何平均数 nums = ['2', '2', '2', '2', '2', '2'] print(reduce(lambda i, x: int(x) * i, nums, 1) ** (1/len(nums))) # 11.定义一个列表保存6个学生的信息(每个学生包含姓名、性别、年龄、分数、电话) list1=[{"姓名":"张三丰","性别":"男","年龄":18,"分数":46,"电话":"13388886666"}, {"姓名":"张四丰","性别":"女","年龄":30,"分数":88,"电话":"13388896666"}, {"姓名":"张五丰","性别":"男","年龄":20,"分数":78,"电话":"13388886669"}, {"姓名":"张六丰","性别":"女","年龄":17,"分数":95,"电话":"13388886696"}, {"姓名":"张七丰","性别":"男","年龄":22,"分数":69,"电话":"13388886966"}, {"姓名":"张八丰","性别":"男","年龄":29,"分数":55,"电话":"13388889666"} ] # 1)按照学生的年龄对学生从小到大排序 print(sorted(list1, key=lambda x: x["年龄"])) # 2)按照学生的成绩对学生从大到小排序 ChengJi=sorted(list1, key=lambda x: x["分数"],reverse=True) print(ChengJi) # 3)对学生排序,要求排序后性别相同的学生放一起,相同性别的学生按照分数从大到小排序 print(sorted(ChengJi, key=lambda x: x["性别"],reverse=True)) #方法2: result = sorted(list1, key=lambda x:f"{x["性别"]}{x["分数"]:0>3}",reverse=True) print(result) # 12.定义一个函数实现斗地主发牌的功能(调用函数得到4个结果: 三个玩家的牌和底牌) from random import sample poker1=([str(x) for x in range(2,11)] + ["J","Q","K","A"] ) huase=["♥","♠","♣","♦"] poker=[] for x in poker1: for y in huase: poker.append(x+y) poker= poker + ["Bjoker","Sjoker"] poker=iter(sample(poker,54)) def pk(): player1 = [] player2 = [] player3 = [] dp = [] for x in range(17): player1.append(next(poker)) player2.append(next(poker)) player3.append(next(poker)) dp = list(poker) return player1,player2,player3,dp p1,p2,p3,dp=pk() print(p1) print(p2) print(p3) print(dp)
21.homework
本节2956字2025-04-10 16:09:33