Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> фильтрация списка классов со списка, как с, атрибутами. в одну строку. 
V
    Опции темы
PyS
  Дата 22.9.2006, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 21.8.2006
Где: г. Алматы (Казахс тан)

Репутация: нет
Всего: 1



Всем привет!
задачу, решил, но тольк страдает скоростьи читабельность. smile
Пожалуйста, помогите, как сократить код и увеличить скорость исполнения. smile

Код

class E1:
    l1=[]
    def __init__(self, l1=[]):
        self.l1=l1
l=[E1(l1=[(1,0,'','',''), (4, 1,'','',''), (18, 1,'','',''), (41, 0,'','',''), (18, 0,'','','')]),
   E1(l1=[(16,0,'','',''), (4, 1,'','',''), (3, 1,'','',''), (41, 0,'','',''), (79, 0,'','','')]),
   E1(l1=[(11,0,'','',''), (4, 1,'','',''), (2, 1,'','',''), (44, 0,'','',''), (78, 0,'','','')]),
   E1(l1=[(61,0,'','',''), (4, 1,'','',''), (22, 1,'','',''), (55, 0,'','',''), (99, 0,'','','')]),
   E1(l1=[(41,0,'','',''), (4, 1,'','',''), (222, 1,'','',''), (66, 0,'','',''), (99, 0,'','','')]),
   E1(l1=[(121,0,'','',''), (12, 1,'','',''), (212, 1,'','',''), (77, 0,'','',''), (88, 0,'','','')]),
   E1(), E1(), E1()]
l_1=[]
l_2=[]
i = 4
for x in l:
    for x in x.l1:
        if i == x[0] and 0 == x[1]:
            l_1+=[x]


с filter сидел долго, но ничего пока не получается. smile
PM MAIL   Вверх
setq
Дата 22.9.2006, 20:07 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











ЧТО ЭТО?
  Вверх
FunnyFalcon
Дата 23.9.2006, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 27.3.2006

Репутация: 4
Всего: 7



Код

class E1:
    l1=[]
    def __init__(self, l1=[]):
        self.l1=l1
l=[ E1(l) for l in [
    [(1,0,'','',''), (4, 1,'','',''), (18, 1,'','',''), (41, 0,'','',''), (18, 0,'','','')],
    [(16,0,'','',''), (4, 1,'','',''), (3, 1,'','',''), (41, 0,'','',''), (79, 0,'','','')],
    [(11,0,'','',''), (4, 1,'','',''), (2, 1,'','',''), (44, 0,'','',''), (78, 0,'','','')],
    [(61,0,'','',''), (4, 1,'','',''), (22, 1,'','',''), (55, 0,'','',''), (99, 0,'','','')],
    [(41,0,'','',''), (4, 1,'','',''), (222, 1,'','',''), (66, 0,'','',''), (99, 0,'','','')],
    [(121,0,'','',''), (12, 1,'','',''), (212, 1,'','',''), (77, 0,'','',''), (88, 0,'','','')],
    [], [], []
        ] ]
l_2=[]
i = 4
l_1=[x for ls in l for x in ls.l1 if i==x[0] and 0==x[1]]

PM MAIL   Вверх
proDiva
Дата 23.9.2006, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

Репутация: 7
Всего: 7



Боже мой, и что же эта задача находит?))
PM MAIL ICQ   Вверх
PyS
Дата 25.9.2006, 06:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 21.8.2006
Где: г. Алматы (Казахс тан)

Репутация: нет
Всего: 1



Цитата(setq @  22.9.2006,  23:07 Найти цитируемый пост)
ЧТО ЭТО? 


Цитата(proDiva @  23.9.2006,  12:55 Найти цитируемый пост)
Боже мой, и что же эта задача находит?)) 


Прошу, прощения, что не пояснил (хотя в зоголовке описано). smile


это фильтрация списка объектов, у которых есть атрибут список, елементом которого является кортеж вида 
Код
 (целое, целое,строка,строка, строка) 
.


FunnyFalcon,  спасибо! 
поставьте, пожалуйста, FunnyFalcon, +1, а то у меня сообщений не хватает. smile
PM MAIL   Вверх
PyS
Дата 25.9.2006, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 21.8.2006
Где: г. Алматы (Казахс тан)

Репутация: нет
Всего: 1



вот более правильный код, для данной задачи:
Код

class E1:
    l1=[]
    def __init__(self, l1=[]):
        self.l1=l1
l=[ E1(l) for l in [
    [(1,0,'','',''), (4, 1,'','',''), (18, 1,'','',''), (41, 0,'','',''), (18, 0,'','','')],
    [(16,0,'','',''), (4, 1,'','',''), (3, 1,'','',''), (41, 0,'','',''), (79, 0,'','','')],
    [(11,0,'','',''), (4, 1,'','',''), (2, 1,'','',''), (44, 0,'','',''), (78, 0,'','','')],
    [(61,0,'','',''), (4, 1,'','',''), (22, 1,'','',''), (55, 0,'','',''), (99, 0,'','','')],
    [(41,0,'','',''), (4, 1,'','',''), (222, 1,'','',''), (66, 0,'','',''), (99, 0,'','','')],
    [(121,0,'','',''), (12, 1,'','',''), (212, 1,'','',''), (77, 0,'','',''), (88, 0,'','','')],
    [], [], []
        ] ]
l_2=[]
i = 4
l_1=[ls for ls in l for x in ls.l1 if i==x[0] and 0==x[1]]


PM MAIL   Вверх
Cr@$h
Дата 25.9.2006, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Цитата(PyS @  25.9.2006,  07:15 Найти цитируемый пост)
FunnyFalcon, +1, а то у меня сообщений не хватает

Не вопрос. Да будет так.
PM MAIL ICQ   Вверх
PyS
Дата 26.9.2006, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 21.8.2006
Где: г. Алматы (Казахс тан)

Репутация: нет
Всего: 1



Цитата(Cr@$h @  25.9.2006,  22:12 Найти цитируемый пост)

Не вопрос. Да будет так.


Cr@$h,  спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0466 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.