python学习站 /学习python第三周
阅读主题
正文字体
字体大小

21.homework

本节2956字2025-04-10 16:09:33
"""
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)


网友评论

相关作品