如何解决具有字典的三元运算符[python]
我想将下面的代码优化为一行
if i == 0:
d = {}
else:
d[j] = d.get(j,0) + 1
我尝试使用三元运算符解决它,但它给了我一个错误
d = {} if i == 0 else d[j] = d.get(j,0) + 1
错误:
d = {} if i == 0 else d[j] = d.get(j,0) + 1 ^ SyntaxError: cannot assign to conditional expression
可以使用三元运算符解决它,还是有另一种方法可以使它在一行中实现?
解决方法
作为参考,这是一个衬板。我不会称之为改进,因为您原来的if
/ else
方法更具可读性:
d = {} if i == 0 else {**d,j: d.get(j,0) + 1}
从Python 3.9开始,您可以执行以下操作:
d = {} if i == 0 else d | {j: d.get(j,0) + 1}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。