У меня есть следующий Python код ниже. Я ожидаю, что код вернет True
, но когда я его запускаю, кажется, он всегда возвращает False
. Кажется, сбой при проверке, если 361 361, но я не могу понять, почему:
def comp(array1, array2):
if array1 is None or array2 is None or len(array1) is 0 or len(array2) is 0 or len(array1) is not len(array2):
return False
aListSquared = [x * x for x in sorted(array1)]
array2.sort()
print(aListSquared)
print(array2)
for x in range(len(aListSquared)):
print('{0}:{1}'.format(aListSquared[x], type(aListSquared[x])))
print('{0}:{1}'.format(array2[x], type(array2[x])))
if int(aListSquared[x]) is not int(array2[x]):
return False
return True
a1 = [121, 144, 19, 161, 19, 144, 19, 11]
a2 = [11 * 11, 121 * 121, 144 * 144, 19 * 19, 161 * 161, 19 * 19, 144 * 144, 19 * 19]
print(comp(a1, a2))
Может кто-нибудь сказать мне, что я делаю неправильно, или почему проверка не работает правильно ?
Большое спасибо