鱼C论坛

 找回密码
 立即注册
查看: 2041|回复: 4

[已解决]课后作业 语法嵌套

[复制链接]
发表于 2022-12-1 22:46:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. members = {
  2.     "鱼C工作室" : {"小甲鱼":83, "不二如是":89, "二师兄":64, "小师妹":75, "鱼小二":96},
  3.     "复仇者联盟" : {"钢铁侠":85, "绿巨人":39, "黑寡妇":82, "鹰眼":73, "雷神":99},
  4.     "奥特曼家族" : {"迪迦":99, "艾斯":84, "泰罗":63, "佐菲":78, "赛文":78}}


  5. x = [':'.join((i, min(members[i].items(), key = lambda x:x[1])[0])) for i in members]
  6. print(x)
复制代码


有大佬解释一下 最后一句那个语法嵌套嘛  lambda表达式的参数是在哪里传入的呀  有点懵
最佳答案
2022-12-2 01:21:51
x = [':'.join((i, min(members[i].items(), key = lambda x:x[1])[0])) for i in members]
把这句拆解来看,一般从后往前看
先看for i in members这是表示从members列表抽取元素;
':'.join((i, ……))表示要组成i:……的形式输出;
min(members[i].items())[0])表示想从members[i]中选最小的元素的[0]名称,即字典中的键,但是怎么定义最小;
key = lambda x:x[1]就表示我设一个x,你min函数比较的每个元素需要先带入x,利用x[1]进行比较,即字典中的值,返回一个序号,按这个序号输出一个结果members[i].items()[j]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-1 23:04:49 | 显示全部楼层
本帖最后由 lxping 于 2022-12-1 23:06 编辑

min 函数的key 参数指定一个用于比较的函数(类似于列表的 sort() 方法),详见:https://fishc.com.cn/forum.php?m ... peid%26typeid%3D768
x 取自members.item() 也就是嵌套的字典生成的字典视图对象中的元素,通过索引取出数值用于min函数比较。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-2 01:21:51 | 显示全部楼层    本楼为最佳答案   
x = [':'.join((i, min(members[i].items(), key = lambda x:x[1])[0])) for i in members]
把这句拆解来看,一般从后往前看
先看for i in members这是表示从members列表抽取元素;
':'.join((i, ……))表示要组成i:……的形式输出;
min(members[i].items())[0])表示想从members[i]中选最小的元素的[0]名称,即字典中的键,但是怎么定义最小;
key = lambda x:x[1]就表示我设一个x,你min函数比较的每个元素需要先带入x,利用x[1]进行比较,即字典中的值,返回一个序号,按这个序号输出一个结果members[i].items()[j]

点评

这个参数x 是不是代表members[i].items()里的每一对建,值。然后x[1]就是切片 表示的是值  发表于 2022-12-6 21:57
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-6 23:01:14 | 显示全部楼层
lassiter 发表于 2022-12-2 01:21
x = [':'.join((i, min(members.items(), key = lambda x:x[1])[0])) for i in members]
把这句拆解来看, ...

是的,字典.items()可以让字典中的键值对以元组的方式输出,将每个元组带入x,x[0]是键,x[1]是值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 21:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表