Как можно отменить порядок списка в Python без использования цикла? Других ограничений на пространство решений нет.Как можно отменить порядок списка в Python без использования цикла?
ответ
a = ['a','b','c']
вы можете попробовать
b = a[::-1]
Это будет возмещена список без использования цикла.
Вы можете использовать один и тот же трюк в любой последовательности/контейнере/итерации, чтобы получить обратный элемент.
Спасибо. Можете ли вы объяснить, как интерпретировать аргументы в квадратных скобках? – Info5ek
@ user1800340 Это Python [Обозначение фрагмента] (http://stackoverflow.com/questions/509211/the-python-slice-notation) :) – TerryA
Думаю, я понял это. 'list [: x]' означает шаг в направлении (знак x) и величину x. Следовательно, -1 будет означать шаг назад, при этом каждый шаг будет размером 1. – Info5ek
Вы также можете использовать встроенную функцию reversed
a = list(reversed(your_list))
@septi На самом деле 'reverseed' возвращает итератор, поэтому вам нужно использовать' list' для хранения списка в 'a' вместо итератора. – SethMMorton
Предполагая, что вы хотите, чтобы изменения в месте:
>>> a = [1,2,3]
>>> a.reverse()
>>> a
[3, 2, 1]
>>> a[:] = a[::-1]
>>> a
[1, 2, 3]
list.reverse()
ли не использует лежащий в основе реализации петлевой I не знаю.
Есть много способов:
Вы можете использовать расширенные List Slicing:
>>> print [1, 2, 3, 4, 5][::-1]
[5, 4, 3, 2, 1]
Или использовать встроенный в .reverse()
функции:
>>> L = [1, 2, 3, 4, 5]
>>> L.reverse()
>>> print L
[5, 4, 3, 2, 1]
Или использовать reversed()
, который возвращает t он отменил список - но в качестве итератора:
>>> L = [1, 2, 3, 4, 5]
>>> print reversed(L)
<listreverseiterator object at 0x2c3630>
>>> print list(reversed(L))
[5, 4, 3, 2, 1]
Зубчатых сравнения:
$ python -m timeit "L = range(1000)" "L = L[::-1]"
100000 loops, best of 3: 11.8 usec per loop
$ python -m timeit "L = range(1000)" "L.reverse()"
100000 loops, best of 3: 9.13 usec per loop
$ python -m timeit "L = range(1000)" "L = list(reversed(L))"
100000 loops, best of 3: 19.1 usec per loop
Этой обратная функция является неэффективной из-за того, как Python обрабатывает списки. Тем не менее, стоит понять, потому что он показывает, как использовать рекурсивную функцию для замены цикла таким образом, который можно адаптировать практически к любому языку. (Другими словами, это не зависит от встроенных функций Python.) Обратите внимание, что l[:1]
возвращает список с одним элементом, содержащий первый элемент l
, а l[1:]
возвращает все остальные элементы в l
.
>>> def reverse(l):
... return reverse(l[1:]) + l[:1] if l else l
...
>>> reverse([1, 2, 3, 4, 5])
[5, 4, 3, 2, 1]
- 1. Как можно отменить раздел списка с помощью цикла в Python?
- 2. как перевернуть элементы списка без использования списка [:: - 1] в PYTHON
- 3. Отменить AsyncTask без цикла
- 4. Как отменить порядок PriorityQueue в python?
- 5. Python - Селен отменить прокси использования
- 6. Значение сущности списка обновления без использования цикла
- 7. Как отменить приоритетную очередь в Python без использования классов?
- 8. Как перебирать список в Python без цикла?
- 9. без использования каждого цикла в JQuery, как можно поворачивать значения
- 10. Как можно отменить части предложения в python?
- 11. Как отсортировать без использования цикла
- 12. Как определить размер связанного списка без использования цикла while?
- 13. LINQ без использования цикла
- 14. Как отменить изменения модели без использования emberdata
- 15. Как отменить команду удаления без использования транзакции
- 16. Как отменить мероприятие без использования метода e.Cancel?
- 17. пользовательский порядок списка python
- 18. Как распечатать список списка в один список в python без использования цикла while или while?
- 19. Как распечатать факториалы без использования цикла?
- 20. Можно ли отменить задачу C# без аннулирования?
- 21. как найти длину списка в python без использования len()
- 22. Можно ли найти элемент управления без использования цикла?
- 23. Как отменить порядок для RDD.takeOrdered()?
- 24. в python 2.7 порядок итерации для цикла
- 25. Сочетание readline() и цикла без использования next() в python
- 26. angular.js: как отменить порядок? Используя '-'?
- 27. попарно evlaluation без использования цикла
- 28. python selenium: можно отменить перенаправление на driver.get()?
- 29. Доступ к переменным класса из списка без использования для цикла?
- 30. Извлечение векторов из strsplit списка без использования цикла
'l.reverse()'. Это первый результат Google * для «обратного списка Python», * прямо в документации *. – user2357112