关于python的if语句的疑问?

大家好,我是一个刚刚开始学习python的小白这个函数中的if语句我不太能理解,为什么写到一行中key就可以等于0,分开写key就要等于1呢?为什么第二次执行时就不会执行... 大家好,我是一个刚刚开始学习python的小白这个函数中的if语句我不太能理解,为什么写到一行中key就可以等于0,分开写key就要等于1呢?为什么第二次执行时就不会执行key=0了,有点想不通,望大家能帮我指点迷津.谢谢题目是count_by(['one", "two", "three"], len)key[el] = 0 if el not in key else key[el] 展开
 我来答
暗客默烛
2020-03-26 · TA获得超过736个赞
知道小有建树答主
回答量:779
采纳率:45%
帮助的人:238万
展开全部
因为“一行”中设置为0之后仍然会+1
但“分开写”中设置为1之后就不会再+1了
相当于一个是首条进来先记次数为0再加1,一个是首条进来直接记次数为1,结果是一样的。
追问
我可以这么理解么?也就是说key[el] = 0是if的一部分条件是么?two时就不执行if而是执行else了是么?
追答

是的,这种写法一般通称为“三目运算”,在python中也叫“条件表达式”。

x = a if m else b

等价于:

if m:

    x = a

else:

    x = b

附两个链接吧:

pep-0308:条件表达式 官方文档

随便找的一篇三目运算说明

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2020-03-26 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7780万
展开全部
相当于他想实现字典的值的加减,前提是字典有这个键,没键的话它默认设置了个0
可以用defaultdict代替
顺便说下这个变量名起得太糟糕 不建议研究这种烂代码
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式