Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 16, 2009 15:38:14

Сергій
От:
Зарегистрирован: 2009-04-16
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Строка наоборот?

Начинающий.
Задача– ряд: 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)

Офлайн

#2 Апрель 16, 2009 17:34:29

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Строка наоборот?

>>> [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]
И т.д.

..bw



Офлайн

#3 Апрель 17, 2009 02:24:57

Сергій
От:
Зарегистрирован: 2009-04-16
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Строка наоборот?

Спасибо!

Как сделать тоже самое с: c, cis, d, es, e, f, fis, g, gis, a, b, h (это латинские обозначения нот :)) ?



Отредактировано (Апрель 17, 2009 02:37:34)

Офлайн

#4 Апрель 17, 2009 02:54:12

Сергій
От:
Зарегистрирован: 2009-04-16
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Строка наоборот?

Уже нашел решение:

>>>

>>> _

>>> _ + _

>>> _ + _

>>> _ + _
и т.д.

Задача 2: программа запрашивает последовательность ( вроде как используется raw_input() ), а потом сама выводит все оставшиеся 11 вариантов. Герой романа “Доктор Фаустус”(Томас Манн), думаю, очень бы даже хотел иметь под рукой такой замечательный скриптик…



Отредактировано (Апрель 17, 2009 02:56:25)

Офлайн

#5 Апрель 17, 2009 03:16:24

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Строка наоборот?

Для “повращать последовательность” был специально сделан deque. Он значительно быстрее разрезания/склейки строк. Это так, в скобках.



Офлайн

#6 Апрель 17, 2009 03:50:13

Сергій
От:
Зарегистрирован: 2009-04-16
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Строка наоборот?

А пример употребления, будь ласка?
Нашел его здесь:
>>> import collections
>>> dir(collections)
но документации в питоне на него нет.



Отредактировано (Апрель 17, 2009 04:02:58)

Офлайн

#7 Апрель 17, 2009 04:28:25

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Строка наоборот?

Начнем с документации
Присутствует с Питона 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])
>>>
Дек - структура данных, “заточенная” на работу с обоими его концами (добавление/удаление) и вращение.
Простейшими примерами использования дека являются стек и очередь (добавление/удаление с одного конца и добавление в один конец а удаление из другого соответственно).



Офлайн

#8 Апрель 17, 2009 13:40:27

Сергій
От:
Зарегистрирован: 2009-04-16
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Строка наоборот?

Спасибо! Буду разбираться…



Офлайн

#9 Апрель 18, 2009 17:27:37

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Строка наоборот?

Андрей Светлов. Вот за это я и разлюбил Python.

..bw



Офлайн

#10 Апрель 18, 2009 17:34:25

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Строка наоборот?

bw, очень хотелось бы пояснений. Я сам не раз использовал collections.deque и никогда не задумывался о его неудобности.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version