numpy 对于长度和值都相同的两个数组,如何返回true?(Python)[duplicate]

inn6fuwd  于 2022-12-04  发布在  Python
关注(0)|答案(2)|浏览(175)

此问题在此处已有答案

Comparing two NumPy arrays for equality, element-wise(8个答案)
昨天关门了。
所以,我想解决的问题是...
“如果两个数组相等,则返回true。
如果数组的长度相同,并且在每个特定索引处包含相同的值,则这些数组相等。
两个空数组相等。”
例如:

input:

a == [1, 9, 4, 6, 3]
b == [1, 9, 4, 6, 3]

output: 
true

OR 

input:
a == [5, 3, 1]
b == [6, 2, 9, 4]

output:
false

这就是我的工作方式。我能够正确地得到数组的长度,但我不知道如何确保数组中的值也是相同的。这就是我在如何实现上遇到的问题。

def solution(a, b):
    if range(len(a)) == range(len(b)): 
        return True
    else: 
        return False
brgchamk

brgchamk1#

使用numpy.array_equal

a = [1, 9, 4, 6, 3]
b = [1, 9, 4, 6, 3]
np.array_equal(a, b)
# True

a = [5, 3, 1]
b = [6, 2, 9, 4]
np.array_equal(a, b)
# False

np.array_equal([], [])
# True
tag5nh1u

tag5nh1u2#

只需使用for循环

def solution(a, b):
    x = 0
    if (len(a) == len(b)): 
        for i in range(len(a)):
            if (a[i] == b[i]):
                x = 1
            else:
                x = 0
                break
        if (x==1):
            return True
        else:
            return False
    else: 
        return False

相关问题