Вы можете проверить, содержит ли параметр type
свойство type
каждого элемента:
In [8]: def findOrders(lst, **kwargs):
...: return [k for k in lst if k["type"] in kwargs["type"]]
In [9]: print(findOrders(lst, type='esimene'))
[{'type': 'esimene', 'id': 1}]
In [10]: print(findOrders(lst, type=('esimene', 'teine')))
[{'type': 'esimene', 'id': 1}, {'type': 'teine', 'id': 2}]
Если вы также хотите сохранить текущую логику со сравнением id
:
In [32]: def findOrders(lst, **kwargs):
...: return [k for k in lst if k["type"] in kwargs.get("type", (k["type"], )) and k["id"] ==
...: kwargs.get("id", k["id"])]
...:
...:
...:
In [33]: print(findOrders(lst, id=1))
[{'type': 'esimene', 'id': 1}]
In [34]: print(findOrders(lst, type=('esimene', 'teine')))
[{'type': 'esimene', 'id': 1}, {'type': 'teine', 'id': 2}]
In [35]: print(findOrders(lst, type=('esimene', 'teine'), id=2))
[{'type': 'teine', 'id': 2}]