如何解决坚持使用 Python if-else one line 语句
我在执行赋值操作时遇到嵌套单行条件语句的问题。
bob = list(map(int,input().split()))
print(alice,bob)
a,b = 0
for i in range(3):
a+=1 if alice[i]>bob[i] else (b+=1 if alice[i]<bob[i] else 1)
print(a,b)```
Output: <br/>
File "/home/Algorithms/compare_triplets.py",line 6
a+=1 if alice[i]>bob[i] else b=b+1 if alice[i]<bob[i] else 1
解决方法
您不能在内嵌的 if else 语句中使用 a += 1
之类的语句。只允许值,而 a += 1
不是值。您必须改用多行 if-elif-else(顺便说一句,它通常被认为更具可读性)。
如果你坚持一行,这行得通(但不是个好主意):
a,b = a + 1 if alice[i] > bob[1] else a,b + 1 if alice[i] < bob[i] else b
但是,目前还不清楚您希望 else 1
位实现什么。
有什么问题:
if alice[i] > bob[1]:
a += 1
elif alice[i] < bob[1]:
b += 1
else:
# whatever you wanted with the `else 1`
pass
当然,它多了几行,但实际上只有 60 个功能字符,而不是 75 个,所以如果你想要简洁,那就更好了。
,您提供的代码有点不清楚,没有说明明确的目标。这是基于我的假设实现接近目标的代码:
bob = list(map(int,input().split()))
print(alice,bob)
a,b = 0
for i in range(3):
if alice[i]>bob[i]:
a+=1
else:
b+=1
print(a,b)
,
bob = list(map(int,input().split())) 打印(爱丽丝,鲍勃) a,b = 0 对于范围内的 i (3): a = 爱丽丝[i] > 鲍勃[1] ? a += 1 : a; b = alice[i]
我想你想要这个!!! :)
,bob = list(map(int,b = 0 对于范围内的 i (3): a = 爱丽丝[i] > 鲍勃[1] ? a += 1 : a; b = alice[i]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。