列表为1时,唯一编号功能不起作用

时间:2019-02-23 00:45:36

标签: python python-3.6

我正在尝试创建一个函数,该函数从列表中删除重复项,但是 只要列表中有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]

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