微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

坚持使用 Python if-else one line 语句

如何解决坚持使用 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 举报,一经查实,本站将立刻删除。