我正在尝试创建一个函数,该函数从列表中删除重复项,但是
只要列表中有1
,它就会失败。它适用于所有其他数字
我不确定是什么原因造成的。有一些数字的数组。
确保数组包含3个以上的数字。
def find_uniq(arr):
new_list = []
for i in arr:
if i not in new_list:
new_list.append(i)
# this returns the second value in new_list as there are two values in the list.
return new_list[1]
答案 0 :(得分:0)
您不需要创建一个包含列表中所有唯一值的新列表。一旦发现重复,您只需返回另一个数字,因为它保证是唯一的。
问题指出,保证输入至少包含3个元素。您可以先检查前三个元素,看看它们是否唯一:
if input[0] != input[1]:
if input[0] == input[2]:
return input[1]
else:
return input[0]
elif input[1] != input[2]
if input[0] == input[1]:
return input[2]
else:
return input[0]
elif input[0] != input[2]
if input[0] == input[1]:
return input[2]
else:
return input[0]
如果您超过了此限制,则表示前三个元素重复。您可以简单地遍历输入的其余部分,查找与此不相等的第一个元素。
dup = input[0]
for el in input[3:]:
if el != dup:
return el