Сравните два списка с разными объектами и создайте новый объект в одном из списков, если значения не совпадают - PullRequest
0 голосов
/ 30 сентября 2019

Допустим, у меня есть два списка, у обоих есть объекты. В list1 есть 5 объектов, а в list2 - 6. Я хочу сравнить их оба и создать новый объект в list1 с временем регистрации и извлечения, что является дополнительным в списке list2.

, сравнивая их как наборы. но не повезло. Спасибо

list1 = [{'checkin': 12/10/2019, 'checkout':13/10/2019},
         {'checkin': 13/10/2019, 'checkout':14/10/2019},
         {'checkin': 14/10/2019, 'checkout':15/10/2019},
         {'checkin': 15/10/2019, 'checkout':16/10/2019},
         {'checkin': 16/10/2019, 'checkout':17/10/2019}]

list2 = [{'checkin': 12/10/2019, 'checkout':13/10/2019},
         {'checkin': 13/10/2019, 'checkout':14/10/2019},
         {'checkin': 14/10/2019, 'checkout':15/10/2019},
         {'checkin': 15/10/2019, 'checkout':16/10/2019},
         {'checkin': 16/10/2019, 'checkout':17/10/2019}
         {'checkin': 20/10/2019, 'checkout':20/10/2019}]

1 Ответ

0 голосов
/ 30 сентября 2019

Если я правильно понимаю ваш вопрос, вы хотите создать список всех элементов в list_1 и элементов, которые находятся в list_2, но не в list_1?

Может быть что-то вроде этого(более короткие списки для простоты):

list_1 = [{'checkin': 12/10/2019, 'checkout':13/10/2019}]
list_2 = [{'checkin': 12/10/2019, 'checkout':13/10/2019}, {'checkin': 19/10/2019, 'checkout':20/10/2019}]


combined_list = list_1 + [x for x in list_2 if x not in list_1]

Не думайте, что мы можем использовать здесь set() из-за dicts?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...