def check(A,B,a,b):
return A >= a and B >= b
A = [500, 500, 500]
a = [20, 0, 0]
B = [5, 5, 5, 5]
b = [0, 10, 0, 0]
print(check(A, B, a, b))
(result True)
I want result become False if only one in list A or B have small value than a or b. In this code B[1] < b[1] (5 >= 10) result I expect is False but is output True
CodePudding user response:
From official doc:
The comparison uses lexicographical ordering: first the first two items are compared, and if they differ this determines the outcome of the comparison; if they are equal, the next two items are compared, and so on, until either sequence is exhausted.
To get False
in your example, you can use built-in all()
to compare all values in arrays:
def check(A, B, a, b):
return all(x >= y for x, y in zip(A, a)) and all(x >= y for x, y in zip(B, b))
A = [500, 500, 500]
a = [20, 0, 0]
B = [5, 5, 5, 5]
b = [0, 10, 0, 0]
print(check(A, B, a, b))
Prints:
False