提取列表的不同元素

Extract the different element of a List

在一个包含三个元素的列表中,我想找到一个列表中与其他两个元素不同的元素。 例如我有 L=[3,3,1] 并且我想提取数字 1。起初我在考虑使用 set() 以便我可以将它与列表进行比较但后来我再次陷入这段代码:

S=set(L)
c1=0
c2=0
for k in L:
    for i in S:
        if k==i:
            c1+=1
            v1=k
        else:
            c2+=1
            v2=k
if c1<c2:
    print (v1)
else:
    print (v2)

我试着计算它们出现了多少次,这样我就可以确定 c1 和 c2 会有不同的值,但后来我意识到 v1 和 v2 是完全错误的。

如果您知道列表恰好包含三个项目并且其中两个是相等的,那么明确地检查内容可能会更容易:

if L[0] == L[1]:
    print(L[2])
elif L[0] == L[2]:
    print(L[1])
else:
    print(L[0])

找到最稀有的?

>>> min(L, key=L.count)
1

或者如果它们都是整数,则使用 xor 使重复对相互抵消:

>>> L[0] ^ L[1] ^ L[2]
1