我一直在解决编码挑战,并且能够非常简单地完成它们。但是,一旦我尝试将代码压缩为使用三元运算符的样式,就会出现问题。在这个问题中,我试图找到在数组中出现奇数次的整数。我用正常的,良好的练习形式做到这一点,一切都很好。
def find_it(seq):
for x in seq:
if seq.count(x) % 2 == 1:
return x
这有效,但是当我试图把它变成这样的东西时:
def find_it(seq):
for x in seq:
return x if seq.count(x) % 2 == 1
几乎每次尝试三元运算符时都会出现此错误:
File "<string>", line 10
return x if seq.count(x) % 2 == 1
^
SyntaxError: invalid syntax
问题是什么?为什么它总是说无效语法?
答案 0 :(得分:0)
这是有效的:
return x if CONDITION
但那不是你想要的,不是吗?看来你原来的工作代码是最好的解决方案。
您尝试使用的return x if seq.count(x) % 2 == 1 else 0
语法在Ruby中有效,但在Python中无效。如果&#34;没有一般&#34;尾随。像Ruby中的支持(在大多数其他语言中都没有)。
答案 1 :(得分:0)
Ternarys有一个&#34;答案,如果条件别的其他答案&#34; python中的格式。
如果x不在序列中,似乎你没有返回条件,所以可能会返回0 ??
w = String.fromCharCode(0x04a)