Python .sort () не работающий как ожидалось

Если Вы действительно хотите запуститься в нижней части, тогда чертящей линию, самая основная операция. Компьютерная графика просто о заполнении пикселей на сетке (экран), таким образом, необходимо удаться, какие пиксели заполнить для получения строки, которая идет от (x0, y0) к (x1, y1).

Выезд алгоритм Bresenham для получения ощущения того, что включено.

9
задан e-satis 3 October 2009 в 14:04
поделиться

8 ответов

You are sorting strings, not numbers. '101101' < '10201' because '1' < '2'. Change list.append(reversed) to list.append(int(reversed)) and it will work (or use a different sorting function).

23
ответ дан 4 December 2019 в 06:19
поделиться

Sort is doing its job. If you intended to store integers in the list, take Lukáš advice. You can also tell sort how to sort, for example by making ints:

list.sort(key=int)

the key parameter takes a function that calculates an item to take the list object's place in all comparisons. An integer will compare numerically as you expect.

(By the way, list is a really bad variable name, as you override the builtin list() type!)

13
ответ дан 4 December 2019 в 06:19
поделиться

Ваш список содержит строки, поэтому он сортирует их в алфавитном порядке - попробуйте преобразовать список в целые числа, а затем выполните сортировку.

2
ответ дан 4 December 2019 в 06:19
поделиться

Вы сортируете строки, а не числа. Строки сравниваются слева направо.

1
ответ дан 4 December 2019 в 06:19
поделиться

You have your numbers stored as strings, so python is sorting them accordingly. So: '101x' comes before '102x' (the same way that 'abcd' will come before 'az').

0
ответ дан 4 December 2019 в 06:19
поделиться

No, it is sorting properly, just that it is sorting lexographically and you want numeric sorting... so remove the "str()"

0
ответ дан 4 December 2019 в 06:19
поделиться

Оператор компаратора обрабатывает ваш ввод как строки, а не целые числа. При сравнении строк 2, поскольку 3-я буква лексически больше 1. reversed = str (mult) [:: - 1]

0
ответ дан 4 December 2019 в 06:19
поделиться

Нет необходимости преобразовывать в int. mult уже является int, и, поскольку вы проверили, что это палиндром, он будет выглядеть так же, как перевернутый, поэтому просто:

list.append(mult)
1
ответ дан 4 December 2019 в 06:19
поделиться
Другие вопросы по тегам:

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