Найти - Пользователи
Полная версия: итератор не мог создать
Начало » Python для новичков » итератор не мог создать
1
ambivalentno
Пытаюсь описать нижеследующий кусок в виде итератора, и у меня не получается.
        pop_list = []
        for entity in list1: #как это описать с помощью итератора?
            for subentity in entity.list2:
                if subentity not in list1 and subentity.property:
                    pop_list.append(subentity)
то есть есть у меня список объектов (list1), из которых я получаю список list2. В list2 могут встречаться элементы list1, но в цели их быть не должно, чтоотбразил как “not in list1”
Долго не получалось. Я вроде как опустил руки и решил постить сие на python.su. Пытаюсь просто написать то, что делает цикл в квадратных скобках - и выходит!
pop_list = [subentity for entity in list1 for subentity in entity.list2  if subentity not in list1 and subentity.property]
Но все равно как-то писал, наверное стоит поделиться.
fata1ex
За что я люблю python, так это то, что абсолютно на любом уровне изучения он может радовать вас подобными вещами :)
Я вот, например, совсем недавно узнал о методе ‘mro’ у класса (до этого пользовался inspect.getmro).

>>> class A(object):
...     pass
...     
>>> class B(A):
...     pass
...     
>>> B.mro()
[<class '__main__.B'>, <class '__main__.A'>, <type 'object'>]
>>> import inspect
>>> inspect.getmro(B)
(<class '__main__.B'>, <class '__main__.A'>, <type 'object'>)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB