Сергій
Апрель 16, 2009 15:38:14
Начинающий.
Задача– ряд: 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 и т.д.
Сергій
Апрель 17, 2009 02:24:57
Спасибо!
Как сделать тоже самое с: c, cis, d, es, e, f, fis, g, gis, a, b, h (это латинские обозначения нот :)) ?
Сергій
Апрель 17, 2009 02:54:12
Уже нашел решение:
>>>
>>> _
>>> _ + _
>>> _ + _
>>> _ + _
и т.д.
Задача 2: программа запрашивает последовательность ( вроде как используется raw_input() ), а потом сама выводит все оставшиеся 11 вариантов. Герой романа “Доктор Фаустус”(Томас Манн), думаю, очень бы даже хотел иметь под рукой такой замечательный скриптик…
Андрей Светлов
Апрель 17, 2009 03:16:24
Для “повращать последовательность” был специально сделан deque. Он значительно быстрее разрезания/склейки строк. Это так, в скобках.
Сергій
Апрель 17, 2009 03:50:13
А пример употребления, будь ласка?
Нашел его здесь:
>>> import collections
>>> dir(collections)
но документации в питоне на него нет.
Андрей Светлов
Апрель 17, 2009 04:28:25
Начнем с
документацииПрисутствует с Питона 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])
>>>
Дек - структура данных, “заточенная” на работу с обоими его концами (добавление/удаление) и вращение.
Простейшими примерами использования дека являются стек и очередь (добавление/удаление с одного конца и добавление в один конец а удаление из другого соответственно).
Сергій
Апрель 17, 2009 13:40:27
Спасибо! Буду разбираться…
bw
Апрель 18, 2009 17:27:37
Андрей Светлов. Вот за это я и разлюбил Python.
..bw
ZZZ
Апрель 18, 2009 17:34:25
bw, очень хотелось бы пояснений. Я сам не раз использовал collections.deque и никогда не задумывался о его неудобности.