Сумасшедшее поведение питона - PullRequest
0 голосов
/ 10 октября 2009

У меня есть небольшой кусочек кода Python в скрипте сервера для моего сайта, который выглядит примерно так:

console.append([str(x) for x in data])
console.append(str(max(data)))

Вы можете подумать, довольно просто, однако результат, который он выводит, таков:

['3', '12', '3']
3

по какой-то причине питон считает, что 3 - максимум [3,12,3]!

Так я что-то не так делаю? Или это неправильное поведение со стороны питона?

Ответы [ 2 ]

8 голосов
/ 10 октября 2009

Поскольку символ '3' в таблице ASCII выше, чем '1'. Вы сравниваете строки, а не числа. Если вы хотите сравнить численно, вам необходимо преобразовать их в числа. Одним из способов является max(data, key=int), но вы можете сохранить номера в списке.

1 голос
/ 10 октября 2009

Я очень мало знаю Python, но вы берете максимум строк, что означает, что '3..' больше '1..'.

...