gpt4 book ai didi

python - 使用 XOR 运算符确定整数列表中是否存在重复项

转载 作者:太空宇宙 更新时间:2023-11-04 07:16:44 24 4
gpt4 key购买 nike

我有一个数字列表:

a = [1,2,3,4,5,19,22,25,17,6,73,72,71,77,899,887,44,124, ...]
#this is an abbreviated version of the list

我需要使用 XOR(“^”)运算符确定列表中是否有重复项。

谁能给我一些提示?我是新手,以前从未遇到过这个问题或使用过 XOR 运算符。

我已经尝试了几种方法(相当于在黑暗中盲目刺伤)。最后一个是这样的:

MyDuplicatesList = [1,5,12,156,166,2656,6,4,5,9] #changed the list to make it easer
for x in MyDuplicatesList:
if x^x:
print("True")

我意识到我问这样一个开放式问题可能违反了协议(protocol),但我完全被难住了。

最佳答案

为什么要异或?

# true if there are duplicates
print len(set(a)) != len(a)

好的,这是 pythonic。它找到所有重复项并列出它们。

a = [1,2,3,4,5,19,22,25,17,6,73,72,71,77,899,887,44,124,1]
b = [a[i] for i in range(len(a)) for j in range(i+1,len(a)) if i ^ j > 0 if a[i] ^ a[j] < 1]

print b

Dalen 想法的简化版:

a = [1,2,3,4,5,19,22,25,17,6,73,72,71,77,899,887,44,124,1]

def simplifyDalen(source):
dup = 0

for x in source:
for y in source:
dup += x ^ y == 0

return dup ^ len(source) > 0

result = simplifyDalen(a)

if result:
print "There are duplicates!"
else:
print "There are no duplicates!"

到目前为止我的位索引想法是最快的(因为它是一次通过算法,我猜,不是多对多)

关于python - 使用 XOR 运算符确定整数列表中是否存在重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41646231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com