首页 > 解决方案 > 如何从 Python 中的新数组中查找重复值?

问题描述

我对 python 仍然非常陌生,目前还停留在这个问题上。基本上,我取一个数字列表并将它们相互添加,从零开始。代码将每一行写入一个新数组。如果在这个新数组中找到两个相同的数字,它将停止并返回该数字。如果未找到重复值,则原始值列表会自行重复。

这是我到目前为止所拥有的:

file = open("list.txt", "r")

array1 = file.readlines()

total = 0
finalValue = 0

for i in range(0,len(array1)):
    array1[i] = int(array1[i])

array2 = []
i = 0
counter = 0

while finalValue == 0:

    total += array1[i]
    array2.append(total)
    print(array2)

    for c in range(0,len(array2)):
        if (total == array2[c]): 
            counter += 1

        if counter == 2:
            finalValue = total

            break

    if (i == len(array1)-1):
        i = 0
    else:
        i += 1
    counter = 0
print(finalValue)

我认为计数器正在工作,但它永远不会找到重复项,即它永远不会碰到第二个计数器。

标签: python

解决方案


有很多方法可以让你的代码在 Python 中更简单,但首先,你的问题是条件total == array2[c]将数组的元素与你的元素进行比较total,而不是相互比较。
例如,如果您的数组是[1,3,3],则第二个3将与 进行比较4,而不是3

如果我理解您的代码,我认为您想更改total == array2[c]array1[i] == array2[c]- 但这只是一个立即修复,您可以使用 python 的列表技术来简化此代码。


推荐阅读