Я ищу быстрый и простой инструмент для имитации WHERE
из SQL.В коллекции (список, набор, словарь и т. Д.) Объектов (каждый из которых должен быть экземпляром списка или класса) я хотел бы выбрать только объекты с некоторыми определенными свойствами / атрибутами и обработать их.
Пример 1:
stuff = {
"item1":[1,2,3],
"item2":[4,5,6,7,8,9],
"item3":[2,4,5]
}
def myfunc(this): # this is the dict above
result = list()
for item in this:
if len(item) == 3:
result.append(item)
return result
В примере 1 myfunc
имитирует return items in stuff WHERE len(item)==3
, который ищет и возвращает объекты длиной 3 в словаре stuff
.
Пример 2:
class thing:
def init(self, a, b, c):
self.a = a
self.b = b
self.c = c
item1 = thing(1,2,3)
item2 = thing(2,3,4)
item3 = thing(3,5,7)
test_list = [item1, item2, item3]
def func(this): # this is the test_list
result = list()
for item in this:
if item.a % 2:
result.append(item)
return result
В примере 2 func
имитирует return items in test_list WHERE (item.a % 2) == 1
, который возвращает объекты, где object.a нечетный.
В обоих примерах коллекция объектов сканируется на определенные атрибуты, которыевыполнить определенные условия и вернуть те объекты для обработки.