鱼C论坛

 找回密码
 立即注册
查看: 2344|回复: 14

[已解决]一行代码找出不及格的奥特曼

[复制链接]
发表于 2022-9-17 14:47:31 | 显示全部楼层 |阅读模式

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

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

x
>>> ultraman = {
        "迪迦" : {"语文":83, "数学":99, "英语":36},
        "艾斯" : {"语文":85, "数学":39, "英语":82},
        "泰罗" : {"语文":99, "数学":84, "英语":78},
        "佐菲" : {"语文":59, "数学":54, "英语":98},
        "赛文" : {"语文":95, "数学":93, "英语":94}}
>>>
>>> # 请在此处添加一行代码,完成题目要求,并将结果保存在变量 z 中
>>>
>>> print(z)
['迪迦', '艾斯', '佐菲']


答案: z = [x for x in members if any(y < 60 for y in members[x].values())]

疑问: any里面, y<60 为啥是放前面的,为什么不是这样 any( for y in members[x].values() y < 60 ) 或 any( for y in members[x].values() if y < 60 )
最佳答案
2022-9-17 16:55:21
python鱼new 发表于 2022-9-17 16:09
就是value < 60 为啥是放到for 前面的, 其它类似的例子,都是放到后面的

any(    [逻辑 for xxx in yyy]   )

列表里面的元素是 true 或 false。(如果小于 60 是 true,大于是 false)

用 any() 函数返回 true 如果列表里面存在至少一个 true,否则返回 false
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-17 14:53:57 | 显示全部楼层

回帖奖励 +5 鱼币

我记得小甲鱼好像讲过, 让我查看一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-17 15:04:36 | 显示全部楼层

回帖奖励 +5 鱼币

  1. z = list(set(x for x in ultraman . keys() for k in ultraman[x] . values() if k < 60))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-17 15:14:45 | 显示全部楼层

回帖奖励 +5 鱼币

  1. z = [name for name, score in ultraman.items() if any([value < 60 for value in score.values()])]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-17 15:15:35 | 显示全部楼层

谢谢,你这个我是理解的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-17 15:49:50 | 显示全部楼层

回帖奖励 +5 鱼币

不懂也
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-17 16:09:17 | 显示全部楼层

就是value < 60 为啥是放到for 前面的, 其它类似的例子,都是放到后面的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-17 16:22:36 | 显示全部楼层

回帖奖励 +5 鱼币

  1. z = [x for x in members if any(y < 60 for y in members[x].values())]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-17 16:25:25 | 显示全部楼层

回帖奖励 +5 鱼币

你们没看题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-17 16:26:07 | 显示全部楼层

回帖奖励 +5 鱼币

  1. z = [x for x in members if any(y < 60 for y in members[x].values())]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-17 16:55:21 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +5 鱼币

python鱼new 发表于 2022-9-17 16:09
就是value < 60 为啥是放到for 前面的, 其它类似的例子,都是放到后面的

any(    [逻辑 for xxx in yyy]   )

列表里面的元素是 true 或 false。(如果小于 60 是 true,大于是 false)

用 any() 函数返回 true 如果列表里面存在至少一个 true,否则返回 false
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-17 23:02:13 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-18 09:15:49 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-18 10:57:21 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-18 19:37:19 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 17:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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