Поведение сравнения между int и кортежем

Мы могли бы сделать это функциональным способом, используя every ( https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/every )

function compareArrays(array1, array2) {
    if (array1.length === array2.length)
        return array1.every((a, index) => a === array2[index])
    else
        return false
}

// test
var a1 = [1,2,3];
var a2 = [1,2,3];

var a3 = ['a', 'r', 'r', 'a', 'y', '1']
var a4 = ['a', 'r', 'r', 'a', 'y', '2']

console.log(compareArrays(a1,a2)) // true
console.log(compareArrays(a1,a3)) // false
console.log(compareArrays(a3,a4)) // false

1
задан 1419636215 15 January 2019 в 23:39
поделиться

1 ответ

Согласно документации, которую вы связали, когда обсуждается сравнение кортежей с другими типами:

сравнение порядка по этим типам дает произвольный порядок.

Похоже, это поведение не определено в Python 2 (поправьте меня, если я ошибаюсь). Выполнение этого же сравнения в Python 3 дает следующую ошибку:

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    print(999 < (0, 6, 7, 8))
TypeError: '<' not supported between instances of 'int' and 'tuple'
0
ответ дан Random Davis 15 January 2019 в 23:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: