Вы можете использовать библиотеку Boost.Process . Тем не менее, это не официальная часть повышения. Я видел, как он хорошо работает для других. К сожалению, прогресс boost.process, по-видимому, застопорился. pstreams - другой (по-видимому активный) проект. Конечно, стоит попробовать, я бы сказал, но это только для совместимых с posix операционных систем.
Простая сортировка по возрастанию очень проста, вызовите функцию sorted (). Он возвращает новый отсортированный список:
>>> sorted([66.25, 333, 333, 1, 1234.5])
[1, 66.25, 333, 333, 1234.5]
sorted () принимает обратный параметр с булевым значением.
>>> sorted([66.25, 333, 333, 1, 1234.5], reverse=True)
[1234.5, 333, 333, 66.25, 1]
.sort()
и .reverse()
изменить список на месте и вернуться None
См. документацию изменчивой последовательности :
Методы
blockquote>sort()
иreverse()
изменяют список для экономии пространства при сортировке или изменении большого списка. Чтобы напомнить вам, что они работают по побочному эффекту, они не возвращают отсортированный или реверсивный список.Сделайте это вместо:
a.sort() print(a) a.reverse() print(a)
или используйте кнопку
sorted()
иreversed()
.print(sorted(a)) # just sorted print(list(reversed(a))) # just reversed print(a[::-1]) # reversing by using a negative slice step print(sorted(a, reverse=True)) # sorted *and* reversed
Эти методы возвращают новый список и оставляют исходный вход список нетронутых.
Демо, сортировка и реверсирование на месте:
>>> a = [66.25, 333, 333, 1, 1234.5] >>> a.sort() >>> print(a) [1, 66.25, 333, 333, 1234.5] >>> a.reverse() >>> print(a) [1234.5, 333, 333, 66.25, 1]
И создание новых отсортированных и перевернутых списков:
>>> a = [66.25, 333, 333, 1, 1234.5] >>> print(sorted(a)) [1, 66.25, 333, 333, 1234.5] >>> print(list(reversed(a))) [1234.5, 1, 333, 333, 66.25] >>> print(a[::-1]) [1234.5, 1, 333, 333, 66.25] >>> print(sorted(a, reverse=True)) [1234.5, 333, 333, 66.25, 1] >>> a # input list is untouched [66.25, 333, 333, 1, 1234.5]
Эти методы работают.
Этот код работает (python 3.x)
a = [66.25, 333, 333, 1, 1234.5]
a.sort()
print(a)
a.reverse()
print(a)
>>>
[1, 66.25, 333, 333, 1234.5]
[1234.5, 333, 333, 66.25, 1]
Для справки вы можете увидеть документацию здесь , в частности, говорит:
Методы sort () и reverse () изменяют список вместо экономии пространства при сортировке или изменении большого списка. Чтобы напомнить вам, что они действуют по побочному эффекту, они не возвращают отсортированный или измененный список.
blockquote>Не бойтесь читать руководство!