Какое поведение вы ожидаете, если в вашем списке есть несколько «апельсинов»? Я считаю, чтобы игнорировать все элементы удвоения.
Функция должна остановить проверку, как только найдет какой-либо элемент из списка проверки.
def check_if_there_something_else(original_list: list, checking_for: list):
for fruit in original_list:
if fruit not in checking_for:
return True
return False
original_list = ['oranges', 'oranges', 'grapes']
checking_for = ['oranges', 'grapes']
print(check_if_there_something_else(original_list, checking_for))
False
original_list = ['oranges', 'oranges', 'grapes', 'grapes', 'grapes', 'kiwi']
checking_for = ['oranges', 'grapes']
print(check_if_there_something_else(original_list, checking_for))
True
Вы можете сделать почти такую же проверку, найдя разницу между наборами, но создание двух новых объектов выглядит избыточно:
print(any(set(original_list).difference(checking_for)))
Правда
Существует несколько компонентов, которые можно использовать для упрощения реализации Единицы работы:
. примеры проектов, здесь - один для Берроу. Я использую Burrow для проекта прямо сейчас, и он прекрасно работает для меня. Хотя я ими не пользуюсь, существуют классы репозитория, которые используют единицу управления рабочим сеансом, поэтому с ней действительно легко начать работу. Я также использую Fluent NHibernate, и легко заставить все работать вместе.
Все, что мне действительно нужно, это простой способ управления соединениями и обработки извлечения / хранения данных.
Да, NHibernate может быть довольно многословным. Я исследовал «шаблоны» как «Единица работы», так и «Репозиторий» (на самом деле они «фасады», но это уже другая история) и написал очень простые их реализации. Оба они значительно упрощают NHibernate, но я бы предложил использовать реализацию Unit of Work, поскольку я считаю, что в целом она более производительна и проще в использовании, чем Repository. Загрузите его и попробуйте: