Я заметил, что Python позволяет мне это делать:
>>> {1: "foo"} < {2: "bar"}
True
Это позволяет мне делать то же самое для списков, deques и т.д. Какова семантика <
при применении к словарям в Python?
В целом, где я могу узнать семантику <
для любого заданного типа коллекции? В большинстве случаев это, похоже, не содержится в документации. Например:
>>> help(dict.__cmp__)
Help on wrapper_descriptor:
__cmp__(...)
x.__cmp__(y) <==> cmp(x,y)
>>> help(cmp)
Help on built-in function cmp in module __builtin__:
cmp(...)
cmp(x, y) -> integer
Return negative if x<y, zero if x==y, positive if x>y.
Я спрашиваю, потому что у меня есть список кортежей формы (int, dict)
. Я хочу отсортировать этот массив на основе первого элемента, но если первые элементы равны для двух элементов, то меня не волнует второй. Я хотел бы знать, будет ли myArray.sort()
делать что-то сложное, связанное с рекурсией через dicts в этом случае, или если оно просто вернет произвольное значение.