Python сортировка 2D-списка по нескольким столбцам не дала ожидаемых результатов - PullRequest
0 голосов
/ 05 мая 2020

У меня есть набор данных с 9 столбцами, которые я хочу отсортировать по столбцу 9, затем 1, затем 2

list.sort(key=itemgetter(8,0,1), reverse=False)

Я не знаю, как добавить сюда вложение, но мой отсортированный список в конечном итоге выглядит так, и, как вы можете видеть, он отсортирован по столбцу 9 (сначала все нули), затем по столбцу 1, а затем по столбцу 2, особенно в строках 9-17, это не имеет смысла:

   -5.8000    -4.0000     0.1005    -3.4900    -2.5000          0          1          2          0

   -5.8000     4.9500     0.1005    -3.4900    -2.5000          0          1          2          0

   -5.5000    -3.6250     0.2500    -5.5700    -5.4700          1          1          2          0

   -5.5000     4.5750     0.2500    -5.5700    -5.4700          1          1          2          0

   -5.1600    -0.3750     0.1105    -2.2850    -2.0000          1          1          1          0

   -5.1600    -0.3750     0.1105    -6.0700    -5.7850          1          1          3          0

   -5.1600    -0.3750     0.1725    -5.7850    -5.5700          1          1          3          0

   -5.1600    -0.3750     0.1002    -6.6102    -6.0702          0          1          4          0

   -5.1000    -0.9500     0.2425    -2.5000    -2.0000          1          1          1          0

   -5.1000    -0.9500     0.2425    -6.0700    -5.5700          1          1          3          0

   -5.1000     1.1000     0.2425    -2.5000    -2.0000          1          1          1          0

   -5.1000     1.1000     0.2425    -6.0700    -5.5700          1          1          3          0

   -5.1000    -0.9500     0.2590    -1.3750    -0.2500          1          1          0          0

   -5.1000    -0.9500     0.2160    -2.0000    -1.3750          1          1          0          0

   -5.1000     1.1000     0.2590    -1.3750    -0.2500          1          1          0          0

   -5.1000     1.1000     0.2160    -2.0000    -1.3750          1          1          0          0

   -5.1000    -0.9500     0.2425    -5.5700    -2.5000          1          1          2          0

есть идеи, что здесь происходит?

1 Ответ

0 голосов
/ 05 мая 2020

получается, мне просто нужно было округлить входные данные перед их сортировкой. Должны быть различия порядка 1E-6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...