提取列表的不同元素
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
在一个包含三个元素的列表中,我想找到一个列表中与其他两个元素不同的元素。
例如我有 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