def singleNumber(nums):
for num in set(nums):
return num if nums.count(num) != 2 #error occurs here
print(singleNumber([1,1,4,5,5]))
这遵循通常的python条件表达式格式。我不明白为什么它会在这里给我一个语法错误。
此功能的目的是找到不会发生两次的数字。
答案 0 :(得分:3)
如果您要实际执行return
,无论如何都必须返回 。
所以你可以尝试:
return num if nums.count(num) != 2 else None
但是,在这种情况下,这不会起作用,因为它将返回首先检查,而不是检查所有所需的元素。
换句话说,假设检查的第一个元素是1
中的第一个[1,1,4,5,5]
。可以看出,数组中有两个该值的副本,然后返回None
,跳过剩下的元素。
我可能会把它重写为:
if nums.count(num) != 2: return num
基本上可以满足您的需求,如果不显式返回某些内容(即所有值都出现两次),调用者在函数中隐式获取None
退出。
如果您是不喜欢隐式内容的类型,您可以在函数末尾显式添加return None
,但这不是必需的。
答案 1 :(得分:0)
因为如果条件为假,你忘了写下结果应该是什么。
return num if nums.count(num) != 2 else ...what?
如果你不想那样,那么你应该写一个正常的if
语句。
答案 2 :(得分:0)
当您使用三元条件运算符时,if和else部分都是必需的。
return num if nums.count(num) != 2 else <missing???>