Задачка:
отсортировать “a”, вернуть пересечение двух массивов если при сравнении двух объектов они одинаковы по одному ключу.
Вопрос:
Подскажите есть ли возможность не крутить 2 раза for и возможно ли сократить мой гкод ?
a = [{'say':'bla-bla', 'disk':'C', 'pl':'sh'}, {'say':'bla', 's': 'cr', 'something':'qwerty'}, {'say':'azsxd', 's': 'black'}, {'say':'rere', 'cast':'aaa', 'ss':'123'}, {'say':'44', '1':'1'}] b = [{'say':'bla-bla', 'disk':'D'}, {'say':'bla', 's':'cr'}]
class DiffObj(object): def __init__(self, list_one, list_two): self.list_one, self.list_two = list_one, list_two @property def sort_list_one(self): return [self.one for self.one in self.list_one if any(self.two.get('say') == self.one.get('say') for self.two in self.list_two)]
result = DiffObj(a, b) print(result.sort_list_one)