1

在三个元素的列表中,我想找到与其他两个不同的列表元素。例如,我有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 完全错误。

4

2 回答 2

4

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

if L[0] == L[1]:
    print(L[2])
elif L[0] == L[2]:
    print(L[1])
else:
    print(L[0])
于 2020-11-29T23:13:22.897 回答
3

找到最稀有的?

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

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

>>> L[0] ^ L[1] ^ L[2]
1
于 2020-11-29T23:21:39.023 回答