python基础语法+爬虫+图像处理+NumpyPandas数据处理(12天速成,第4天下-列表、字典、元组、lambda练习)

1、作业题
2、函数式编程(Lambda表达式)
有数据如下:
[{'name': '杜静', 'sex': '女'}, {'name': '齐根芳', 'sex': '女'}, {'name': '郑忠营', 'sex': '男'}, {'name': '孔小康', 'sex': '男'}, 
 {'name': '胡书畅', 'sex': '男'}, {'name': '刘新良', 'sex': '男'}, {'name': '潘恩奇', 'sex': '男'}, {'name': '张展硕', 'sex': '男'}, 
 {'name': '高文达', 'sex': '男'}, {'name': '王康萍', 'sex': '女'}, {'name': '范乃晖', 'sex': '男'}, {'name': '宋天宇', 'sex': '男'}, 
 {'name': '韩振威', 'sex': '男'},
 {'name': '张儒超', 'sex': '男'}, {'name': '李蕊', 'sex': '女'}, {'name': '张永丽', 'sex': '女'}, {'name': '董梦雪', 'sex': '女'}, 
 {'name': '孙晶晶', 'sex': '女'}, {'name': '刘淑明', 'sex': '女'}, {'name': '崔梦琪', 'sex': '女'}, {'name': '郑钰森', 'sex': '男'}, 
 {'name': '崔孟男', 'sex': '男'}, {'name': '周航飞', 'sex': '男'}, {'name': '刘雯婷', 'sex': '女'}, {'name': '丁需峰', 'sex': '男'}, 
 {'name': '陈思宇', 'sex': '男'}, {'name': '王振铎', 'sex': '男'}, {'name': '李文桐', 'sex': '女'}, {'name': '吉世 平', 'sex': '男'}, 
 {'name': '牛肖凯', 'sex': '男'}, {'name': '魏西琳', 'sex': '女'}, {'name': '张邵娴', 'sex': '女'}, {'name': '陈艳', 'sex': '女'}, 
 {'name': '李春晖', 'sex': '男'}, {'name': '张舟', 'sex': '男'}, {'name': '胡深', 'sex': '男'}, {'name': '郝瑞祥', 'sex': '男'}, 
 {'name': '蔡成帆', 'sex': '男'}, {'name': '刘伟平', 'sex': '男'}, {'name': '左宇航', 'sex': '男'}, {'name': '丁浩', 'sex': '男'},
 {'name': '金湾湾', 'sex': '女'}, {'name': '秦嘉康', 'sex': ' 男'}, {'name': '邢家浩', 'sex': '男'}, {'name': '王自闯', 'sex': '男'}, 
 {'name': '邸新伟', 'sex': '男'}, {'name': '曹元博', 'sex': '男'}, {'name': '李晴', 'sex': '女'}, {'name': '毛梦园', 'sex': '女'}, 
 {'name': '李凯', 'sex': '男'}, {'name': '高迎春', 'sex': '男'}, {'name': '杜家乐', 'sex': '男'}, {'name': '刘兆京', 'sex': '男'},
 {'name': '苏岩', 'sex': '男'}, {'name': '刘家龙', 'sex': '男'}, {'name': '单祖皓', 'sex': '男'}, {'name': '葛圣旗', 'sex': '男'}, 
 {'name': '王璐浩', 'sex': '男'}, {'name': '李潇潇', 'sex': '女'}, {'name': '边继辉', 'sex': '男'}, {'name': '张莹莹', 'sex': '女'}, 
 {'name': '陈震东', 'sex': '男'}, {'name': '朱攀攀', 'sex': '男'}, {'name': '张宇', 'sex': '男'}, {'name': ' 陈辛源', 'sex': '男'}, 
 {'name': '卢良辉', 'sex': '男'}, {'name': '李文想', 'sex': '男'}, {'name': '马甜甜', 'sex': ' 女'}, {'name': '岳俊芳', 'sex': '女'}, 
 {'name': '吉庆', 'sex': '男'}, {'name': '马春飞', 'sex': '男'}, {'name': '乔楷罡', 'sex': '男'}, {'name': '王志斌', 'sex': '男'}, 
 {'name': '李录录', 'sex': '女'}, {'name': '侯晓盼', 'sex': '女'}, {'name': '徐家洋', 'sex': '男'}, {'name': '史雪程', 'sex': '女'}, 
 {'name': '赵梦雨', 'sex': '男'}, {'name': '浮佳伟', 'sex': '男'}, {'name': '马路坤', 'sex': '男'}, {'name': '时浩田', 'sex': '男'},
 {'name': '赵亚非', 'sex': '男'}, {'name': '邢琳琳', 'sex': '女'}, {'name': '刘通', 'sex': '男'}, {'name': '张志昌', 'sex': '男'}, 
 {'name': '张聪聪', 'sex': '女'}, {'name': '窦明晨', 'sex': '男'}, {'name': '葛艺茗', 'sex': '女'}, {'name': '刘倩倩', 'sex': '女'}]
List+dict中保存了班级的学生信息,请处理该数据:
@1 得到如下格式的结果:
{
    "MaleNum":  xxx #男生的个数,
    "FeMaleNum":xxx #女生的个数,
    "MaleNames": [xxx,xx,xx,xx,xxx......] #男生的姓名,
    "FeMaleNames": [xxx,xx,xx,xx,xxx......] #女生的姓名
}
@2 请统计每个姓氏多少人,哪个姓氏的学生数最多
# 第一问
infos = [{'name': '杜静', 'sex': '女'}, {'name': '齐根芳', 'sex': '女'}, {'name': '郑忠营', 'sex': '男'}, {'name': '孔小康', 'sex': '男'}, 
 {'name': '胡书畅', 'sex': '男'}, {'name': '刘新良', 'sex': '男'}, {'name': '潘恩奇', 'sex': '男'}, {'name': '张展硕', 'sex': '男'}, 
 {'name': '高文达', 'sex': '男'}, {'name': '王康萍', 'sex': '女'}, {'name': '范乃晖', 'sex': '男'}, {'name': '宋天宇', 'sex': '男'}, 
 {'name': '韩振威', 'sex': '男'},
 {'name': '张儒超', 'sex': '男'}, {'name': '李蕊', 'sex': '女'}, {'name': '张永丽', 'sex': '女'}, {'name': '董梦雪', 'sex': '女'}, 
 {'name': '孙晶晶', 'sex': '女'}, {'name': '刘淑明', 'sex': '女'}, {'name': '崔梦琪', 'sex': '女'}, {'name': '郑钰森', 'sex': '男'}, 
 {'name': '崔孟男', 'sex': '男'}, {'name': '周航飞', 'sex': '男'}, {'name': '刘雯婷', 'sex': '女'}, {'name': '丁需峰', 'sex': '男'}, 
 {'name': '陈思宇', 'sex': '男'}, {'name': '王振铎', 'sex': '男'}, {'name': '李文桐', 'sex': '女'}, {'name': '吉世 平', 'sex': '男'}, 
 {'name': '牛肖凯', 'sex': '男'}, {'name': '魏西琳', 'sex': '女'}, {'name': '张邵娴', 'sex': '女'}, {'name': '陈艳', 'sex': '女'}, 
 {'name': '李春晖', 'sex': '男'}, {'name': '张舟', 'sex': '男'}, {'name': '胡深', 'sex': '男'}, {'name': '郝瑞祥', 'sex': '男'}, 
 {'name': '蔡成帆', 'sex': '男'}, {'name': '刘伟平', 'sex': '男'}, {'name': '左宇航', 'sex': '男'}, {'name': '丁浩', 'sex': '男'},
 {'name': '金湾湾', 'sex': '女'}, {'name': '秦嘉康', 'sex': ' 男'}, {'name': '邢家浩', 'sex': '男'}, {'name': '王自闯', 'sex': '男'}, 
 {'name': '邸新伟', 'sex': '男'}, {'name': '曹元博', 'sex': '男'}, {'name': '李晴', 'sex': '女'}, {'name': '毛梦园', 'sex': '女'}, 
 {'name': '李凯', 'sex': '男'}, {'name': '高迎春', 'sex': '男'}, {'name': '杜家乐', 'sex': '男'}, {'name': '刘兆京', 'sex': '男'},
 {'name': '苏岩', 'sex': '男'}, {'name': '刘家龙', 'sex': '男'}, {'name': '单祖皓', 'sex': '男'}, {'name': '葛圣旗', 'sex': '男'}, 
 {'name': '王璐浩', 'sex': '男'}, {'name': '李潇潇', 'sex': '女'}, {'name': '边继辉', 'sex': '男'}, {'name': '张莹莹', 'sex': '女'}, 
 {'name': '陈震东', 'sex': '男'}, {'name': '朱攀攀', 'sex': '男'}, {'name': '张宇', 'sex': '男'}, {'name': ' 陈辛源', 'sex': '男'}, 
 {'name': '卢良辉', 'sex': '男'}, {'name': '李文想', 'sex': '男'}, {'name': '马甜甜', 'sex': ' 女'}, {'name': '岳俊芳', 'sex': '女'}, 
 {'name': '吉庆', 'sex': '男'}, {'name': '马春飞', 'sex': '男'}, {'name': '乔楷罡', 'sex': '男'}, {'name': '王志斌', 'sex': '男'}, 
 {'name': '李录录', 'sex': '女'}, {'name': '侯晓盼', 'sex': '女'}, {'name': '徐家洋', 'sex': '男'}, {'name': '史雪程', 'sex': '女'}, 
 {'name': '赵梦雨', 'sex': '男'}, {'name': '浮佳伟', 'sex': '男'}, {'name': '马路坤', 'sex': '男'}, {'name': '时浩田', 'sex': '男'},
 {'name': '赵亚非', 'sex': '男'}, {'name': '邢琳琳', 'sex': '女'}, {'name': '刘通', 'sex': '男'}, {'name': '张志昌', 'sex': '男'}, 
 {'name': '张聪聪', 'sex': '女'}, {'name': '窦明晨', 'sex': '男'}, {'name': '葛艺茗', 'sex': '女'}, {'name': '刘倩倩', 'sex': '女'}];

rs = {
    "MaleNum": 0,# 男生的个数
    "FeMaleNum": 0, # 女生的个数
    "MaleNames": [], #男生的姓名,
    "FeMaleNames": [] #女生的姓名
};
for stu in infos: #遍历列表,拿到每个学生信息字典
    if dt['sex'] == '男':
        rs['MaleNum'] =  rs['MaleNum']+1
        rs['MaleNames'].append(stu["name"])
    else:
        rs['FeMaleNum'] =  rs['FeMaleNum']+1
        rs['FeMaleNames'].append(stu["name"])
print(rs)
{'MaleNum': 0, 'FeMaleNum': 89, 'MaleNames': [], 'FeMaleNames': ['杜静', '齐根芳', '郑忠营', '孔小康', '胡书畅', '刘新良', '潘恩奇', '张展硕', '高文达', '王康萍', '范乃晖', '宋天宇', '韩振威', '张儒超', '李蕊', '张永丽', '董梦雪', '孙晶晶', '刘淑明', '崔梦琪', '郑钰森', '崔孟男', '周航飞', '刘雯婷', '丁需峰', '陈思宇', '王振铎', '李文桐', '吉世 平', '牛肖凯', '魏西琳', '张邵娴', '陈艳', '李春晖', '张舟', '胡深', '郝瑞祥', '蔡成帆', '刘伟平', '左宇航', '丁浩', '金湾湾', '秦嘉康', '邢家浩', '王自闯', '邸新伟', '曹元博', '李晴', '毛梦园', '李凯', '高迎春', '杜家乐', '刘兆京', '苏岩', '刘家龙', '单祖皓', '葛圣旗', '王璐浩', '李潇潇', '边继辉', '张莹莹', '陈震东', '朱攀攀', '张宇', ' 陈辛源', '卢良辉', '李文想', '马甜甜', '岳俊芳', '吉庆', '马春飞', '乔楷罡', '王志斌', '李录录', '侯晓盼', '徐家洋', '史雪程', '赵梦雨', '浮佳伟', '马路坤', '时浩田', '赵亚非', '邢琳琳', '刘通', '张志昌', '张聪聪', '窦明晨', '葛艺茗', '刘倩倩']}
# 请统计每个姓氏多少人 使用dict存储
nameNum = {};
allname = []; #保存所有人的名字
allname.extend(rs["MaleNames"]); # 加入男生的名字
allname.extend(rs["FeMaleNames"]); # 加入女生的名字
#遍历 + Map累加
for name in allname:
    x = name[0:1]; #切片 --》姓
    if nameNum.get(x) == None:
        nameNum[x] = 1
    else:
        nameNum[x] = nameNum[x]+1;

print(nameNum);
{'杜': 2, '齐': 1, '郑': 2, '孔': 1, '胡': 2, '刘': 8, '潘': 1, '张': 9, '高': 2, '王': 5, '范': 1, '宋': 1, '韩': 1, '李': 8, '董': 1, '孙': 1, '崔': 2, '周': 1, '丁': 2, '陈': 3, '吉': 2, '牛': 1, '魏': 1, '郝': 1, '蔡': 1, '左': 1, '金': 1, '秦': 1, '邢': 2, '邸': 1, '曹': 1, '毛': 1, '苏': 1, '单': 1, '葛': 2, '边': 1, '朱': 1, ' ': 1, '卢': 1, '马': 3, '岳': 1, '乔': 1, '侯': 1, '徐': 1, '史': 1, '赵': 2, '浮': 1, '时': 1, '窦': 1}
#对dict 按照值的大小排序
ls = list(nameNum.items())
print(ls) #[('杜', 2), ('齐', 1), ('郑', 2), ('孔', 1), ('胡', 2), ('刘', 8)...]
ls.sort(key=lambda x:x[1],reverse=True);
print(ls)
[('杜', 2), ('齐', 1), ('郑', 2), ('孔', 1), ('胡', 2), ('刘', 8), ('潘', 1), ('张', 9), ('高', 2), ('王', 5), ('范', 1), ('宋', 1), ('韩', 1), ('李', 8), ('董', 1), ('孙', 1), ('崔', 2), ('周', 1), ('丁', 2), ('陈', 3), ('吉', 2), ('牛', 1), ('魏', 1), ('郝', 1), ('蔡', 1), ('左', 1), ('金', 1), ('秦', 1), ('邢', 2), ('邸', 1), ('曹', 1), ('毛', 1), ('苏', 1), ('单', 1), ('葛', 2), ('边', 1), ('朱', 1), (' ', 1), ('卢', 1), ('马', 3), ('岳', 1), ('乔', 1), ('侯', 1), ('徐', 1), ('史', 1), ('赵', 2), ('浮', 1), ('时', 1), ('窦', 1)]
[('张', 9), ('刘', 8), ('李', 8), ('王', 5), ('陈', 3), ('马', 3), ('杜', 2), ('郑', 2), ('胡', 2), ('高', 2), ('崔', 2), ('丁', 2), ('吉', 2), ('邢', 2), ('葛', 2), ('赵', 2), ('齐', 1), ('孔', 1), ('潘', 1), ('范', 1), ('宋', 1), ('韩', 1), ('董', 1), ('孙', 1), ('周', 1), ('牛', 1), ('魏', 1), ('郝', 1), ('蔡', 1), ('左', 1), ('金', 1), ('秦', 1), ('邸', 1), ('曹', 1), ('毛', 1), ('苏', 1), ('单', 1), ('边', 1), ('朱', 1), (' ', 1), ('卢', 1), ('岳', 1), ('乔', 1), ('侯', 1), ('徐', 1), ('史', 1), ('浮', 1), ('时', 1), ('窦', 1)]
print(ls[0][0],"氏学生人数最多:",ls[0][1],"人")
张 氏学生人数最多: 9 人
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值