Форум сайта python.su
Начинающий.
Задача– ряд: 1,2,3,4,5,6,7,8,9,10,11,12 обратить в 12,11,10,9,8,7,6,5,4,3,2,1 ?
+ вывести таблицу типа 12,11,10,9,8,7,6,5,4,3,2,1
11,10,9,8,7,6,5,4,3,2,1,12
10,9,8,7,6,5,4,3,2,1,12,11
9,8,7,6,5,4,3,2,1,12,11,10 и т.д.
Отредактировано (Апрель 16, 2009 15:40:36)
Офлайн
>>> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
>>> _[::-1]
[12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> _[1:] + _[:1]
[11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 12]
>>> _[1:] + _[:1]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 12, 11]
>>> _[1:] + _[:1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 12, 11, 10]
Офлайн
Спасибо!
Как сделать тоже самое с: c, cis, d, es, e, f, fis, g, gis, a, b, h (это латинские обозначения нот :)) ?
Отредактировано (Апрель 17, 2009 02:37:34)
Офлайн
Уже нашел решение:
>>>
>>> _
>>> _ + _
>>> _ + _
>>> _ + _
и т.д.
Задача 2: программа запрашивает последовательность ( вроде как используется raw_input() ), а потом сама выводит все оставшиеся 11 вариантов. Герой романа “Доктор Фаустус”(Томас Манн), думаю, очень бы даже хотел иметь под рукой такой замечательный скриптик…
Отредактировано (Апрель 17, 2009 02:56:25)
Офлайн
Для “повращать последовательность” был специально сделан deque. Он значительно быстрее разрезания/склейки строк. Это так, в скобках.
Офлайн
А пример употребления, будь ласка?
Нашел его здесь:
>>> import collections
>>> dir(collections)
но документации в питоне на него нет.
Отредактировано (Апрель 17, 2009 04:02:58)
Офлайн
Начнем с документации
Присутствует с Питона 2.4.
>>> from collections import deque
>>> d = deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
>>> d
deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
>>> d.rotate(1)
>>> d
deque([12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
>>> d.rotate(4)
>>> d
deque([8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7])
>>>
Офлайн
Спасибо! Буду разбираться…
Офлайн
Андрей Светлов. Вот за это я и разлюбил Python.
..bw
Офлайн
bw, очень хотелось бы пояснений. Я сам не раз использовал collections.deque и никогда не задумывался о его неудобности.
Офлайн