Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 5, 2013 16:57:00

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Сегодня на манеже кортеж в кортеже

Florenzo
Похоже, что проверка на instanse тоже только первый слой снимает
Что ей скажут снять то и снимает. Если ничего не сказать - ничего не снимет, и Питон за вас программы писать не будет.

Офлайн

#2 Июнь 5, 2013 16:59:52

Florenzo
Зарегистрирован: 2013-06-05
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Сегодня на манеже кортеж в кортеже

alexbadaloff

OK! почитал, однако понять это не на один день :-)
какие есть команды в Python для обхода в глубину кортежа/списка?

Мне же пока не надо углубляться в словари и бинарные деревья. Мне только один, точнее второй :-) слой.

Офлайн

#3 Июнь 5, 2013 17:02:21

Florenzo
Зарегистрирован: 2013-06-05
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Сегодня на манеже кортеж в кортеже

alexbadaloff
Мне кажется для этой задачи больше подходит словарь (dict) нежели кортеж.

Спасибо, попробую словарь. Но… тяжеловесно как-то. Ведь только буквы.

Офлайн

#4 Июнь 5, 2013 17:07:36

Florenzo
Зарегистрирован: 2013-06-05
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Сегодня на манеже кортеж в кортеже

Shaman
Что ей скажут снять то и снимает. Если ничего не сказать - ничего не снимет, и Питон за вас программы писать не будет.

Согласен. Только вот я не знаю, как сказать программе, чтобы снимала второй слой. Лутца пересматривал, Прохоренка тоже - не нашел пока. по lektorium.tv и codecademy занимаюсь(и лутца с прохоренком читаю), только вот пока не дошло. Увы мне грешному, увы.

Офлайн

#5 Июнь 5, 2013 17:16:51

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Сегодня на манеже кортеж в кортеже

Florenzo
Лутца пересматривал, Прохоренка тоже - не нашел пока. по lektorium.tv и codecademy занимаюсь(и лутца с прохоренком читаю)
Признаюсь, не читал ни единой книжки по питону, но проблемы с обходом не вижу.

Офлайн

#6 Июнь 5, 2013 17:28:07

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Сегодня на манеже кортеж в кортеже

Капец, ребята, это стандартная студенческая задача на рекурсию, ну включите же мозг или оный отсутствует?



Офлайн

#7 Июнь 5, 2013 17:46:38

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Сегодня на манеже кортеж в кортеже

FishHook
Капец, ребята, это стандартная студенческая задача на рекурсию
Можно и фильтрацией.

Офлайн

#8 Июнь 5, 2013 17:56:40

Florenzo
Зарегистрирован: 2013-06-05
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Сегодня на манеже кортеж в кортеже

У меня наконец-то получилось :-)

вот:

# -*- coding: utf-8 -*-
                                                               #
cortege1 = (('а','я'),'б','в','г','д',('е','э','ё'),'з',('и','й'))
                                                               #
s = input('введите слово --> ') 
### буквы только из этого кортежа!!!!
### тестовые слова - где, дай, бай, вай, айяйяй, идея
                                                                #
for a in s:
      for b in range(len(cortege1)):
          if a in cortege1[b]:
                 print('cortege1 = ', a)
                                                                #
                                                                #


Спасибо всем.




Отредактировано Florenzo (Июнь 5, 2013 17:58:07)

Офлайн

#9 Июнь 5, 2013 18:18:06

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Сегодня на манеже кортеж в кортеже

Florenzo
Спасибо всем.
рука-лицо.жпг



Офлайн

#10 Июнь 5, 2013 18:25:00

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Сегодня на манеже кортеж в кортеже

Florenzo
Спасибо всем.
mycortege = (('а','я',('е','э','ё')),'б','в','г','д','з',('и','й'))
myword = 'где'
testf = lambda x:isinstance(x, (tuple, list, dict))
cs = set()
wcort = tuple(mycortege)
while len(wcort):
    cs |= set(filter(lambda x: not testf(x), wcort))
    wcort = reduce(lambda x, y: x+y, filter(testf, wcort), ())
print(set(myword) <= cs)
пожалуйста

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version