gpt4 book ai didi

python - 对两个数组进行排序以查看它们是否具有相同的值,但它只会发现数组中有 2/3 的值相同

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:51:36 25 4
gpt4 key购买 nike

我不知道为什么只有三分之二的值在我的代码中显示它们是相同的,是不是我遗漏了什么?

def occurInBoth(B,A):
occured = 0
for i in range(len(A)):
if A[i] == B[i]:
occured += 1

return occured



A = [5,12,31,7,25]
sorted(A)
A.sort()
print(A)
B = [4,12,7,31,42,8]
sorted(B)
B.sort()
print(B)
occured = occurInBoth(B,A)
print(occured)

你能给我点建议吗?

最佳答案

您的算法存在逻辑错误。如果对两个列表进行排序,这意味着项目将出现在相同的索引处。

确实,以您的示例中的排序列表为例:

A = [5, 7, <b>12</b>, 25, 31]
B = [4, 7, 8, <b>12</b>, 31, 42]

如您所见,12 出现在两个列表中,但不在同一索引处。

然而,您可以利用列表已排序的事实:

def occurInBoth(a, b):
occured = i = j = 0
while i < len(a) and j < len(b):
if a[i] < b[j]:
i += 1
elif a[i] > b[j]:
j += 1
else:
occurred += 1
i += 1
j += 1

关于python - 对两个数组进行排序以查看它们是否具有相同的值,但它只会发现数组中有 2/3 的值相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58259761/

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