Что «лучше» обратного метода или перевернутой встроенной функции?

Что обычно рассматривается как больше Pythonic / лучше / быстрее использовать, обратный метод или обратная встроенная функция?

Оба действия:

_list = list(xrange(4)) print _list rlist = list(reversed(_list)) print rlist _list.reverse() print _list 

4 Solutions collect form web for “Что «лучше» обратного метода или перевернутой встроенной функции?”

Зависит от того, хотите ли вы перевернуть список на месте (т. Е. Изменить список) или нет. Никакой другой реальной разницы.

Часто использование reversed ведет к более приятному коду.

foo.reverse() фактически меняет элементы в контейнере. reversed() фактически ничего не отменяет, он просто возвращает объект, который можно использовать для итерации по элементам контейнера в обратном порядке. Если это то, что вам нужно, это часто быстрее, чем наоборот.

Кажется, что есть большая разница. Я действительно думал, что все наоборот. Почему переупорядочивание значений в списке происходит быстрее, чем создание нового из итератора?

 from decorators import bench _list = range(10 ** 6) @ bench def foo():  list(reversed(_list)) @ bench def bar():  _list.reverse() foo() bar() print foo.time print bar.time 

+0,167278051376
+0,0122621059418

Не зная реальной статистики о производительности, _list.reverse() изменяет сам список, тогда как reversed(_list) возвращает итератор, готовый пересечь список в обратном порядке. Это большая разница.

Если это не проблема, object.reverse() кажется мне более читаемым, но, возможно, у вас есть конкретные требования к скорости. И если reverse() не принадлежит 80% программного обеспечения, которое потребляет ресурсы, я бы не стал беспокоиться (как общее правило).

  • Python: возвращает индекс первого элемента списка, который делает переданную функцию true
  • В чем разница между `sorted (list)` vs `list.sort ()`? питон
  • Промежуточная переменная в понимании списка для одновременной фильтрации и преобразования
  • Список передачи Python в качестве аргумента
  • Как найти общие элементы в списке списков?
  • Использование .format () для форматирования списка с аргументами ширины поля
  • Каков наиболее эффективный способ добавить элемент в список, только если его еще нет?
  • Итерация на языке Python списка объектов «не повторяется»
  •  
    Interesting Posts for Van-Lav

    Проблема синхронизации с использованием многопроцессорного модуля Python

    где хранить статические файлы в приложении django, Как подключать статические файлы из нескольких местоположений от nginx

    Как использовать перечисления Python 3.4 без значительного замедления?

    Django: сохранение нескольких полей ManyToMany в транзакции

    ПРЕДУПРЕЖДЕНИЕ: '' Недействительное имя пакета; используйте только пакет с разделенными пакетами. setup.py

    Как выводить список поплавков в двоичный файл в Python

    Оператор умножения, применяемый к списку (структуре данных)

    Как читать csv, хранящийся в S3 с помощью csv.DictReader?

    Рекурсивный DotDict

    Python: Как преобразовать массив строк в массив чисел?

    Программно указать, будет ли символ Unicode занимать более одного пространства символов в терминале

    движок приложения: ImportError: нет модуля с именем Crypto.Hash

    Как загрузить tsv-файл в Pandas DataFrame?

    Равномерно перетасовать 5 гигабайт данных numpy

    Удаление нескольких столбцов в Pandas

    Python - лучший язык программирования в мире.