У меня есть ниже словаря:Как работают функции max и min?
d = {1: 'zz', 2: 'we', 'as': 'dfda', 'x': 'zyz'}
И max
и min
возвращение следующее:
max(d)
'x'
min(d)
1
Как max
и min
действительно работают в этом случае?
У меня есть ниже словаря:Как работают функции max и min?
d = {1: 'zz', 2: 'we', 'as': 'dfda', 'x': 'zyz'}
И max
и min
возвращение следующее:
max(d)
'x'
min(d)
1
Как max
и min
действительно работают в этом случае?
max
и min
работа над итерами. Если вы попытаетесь преобразовать словарь в итерируемый, вы вернете его ключи. Итак, max(d)
- это то же самое, что и max(1,2,'as','x')
. Есть некоторые сведения о заказе различных встроенных типов here. Например, 1< "a"
- True
. Это используется, чтобы найти максимум списка. Аналогично для min
. В качестве примечания я бы не рекомендовал делать что-то подобное в производственном коде.
min
и max
функции, применяемые к словарям, работают на клавишах словаря.
В вашем случае, они должны работать на
[1, 2, 'as', 'x']
Как вы можете видеть, существует несколько типов данных, содержащихся в нем. In Python 2.7, if the types are different, then the string value of the types are used for comparison.. Цитата из этого раздела,
Обратите внимание, что сравнение объектов разных типов является законным. Результат является детерминированным, но произвольным: типы упорядочены по их имени. Таким образом, список всегда меньше строки, строка всегда меньше кортежа и т. Д. (Не следует полагаться на правила для сравнения объектов разных типов, они могут изменяться в будущей версии языка.)
Так что, если вы на самом деле отсортировать ключи словаря,
>>> sorted(d)
[1, 2, 'as', 'x']
Как вы можете видеть сейчас, является наименьшим 1
и самым большим является x
.
Не могли бы вы уточнить, о чем вы спрашиваете? Вы посмотрели, например. 'Сортирован (д)'? – jonrsharpe
http://stackoverflow.com/questions/3270680/how-does-python-compare-string-and-int – Maroun
Следует отметить, что это приведет к созданию TypeError в python 3, поскольку python 3 считает, что не существует естественного упорядочения между ints и строками. – Dunes