05
Апр
2018

Необходимо сравнить два списка [(1,), (2,), (3,)] и [2, 3, 4, 5]

Есть два списка:

old_users = [(1,), (2,), (3,)]
current_users = [2, 3, 4, 5]

Необходимо выполнить следующую операцию:

res = [x for x in old_users if x in current_users]
outcoming = list(set(old_users) - set(res))
print('Потерянные: ', outcoming)
incoming = list(set(current_users) - set(res))
print('Найденные: ', incoming)

P.S. Не уверен, что это важно, но рабочий вариант должен поддерживать сравнение сотен тысяч элементов. Стабильность и точность важнее скорости.

P.S.S. пробовал сделать их одинаковыми вот так:

for i in raw_current_users:
    a = '(' + str(i) + ',)'
    current_users.append(a)

Но не получилось

Источник: https://ru.stackoverflow.com/questions/809928/%D0%9D%D0%B5%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B8%D0%BC%D0%BE-%D1%81%D1%80%D0%B0%D0%B2%D0%BD%D0%B8%D1%82%D1%8C-%D0%B4%D0%B2%D0%B0-%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0-1-2-3-%D0%B8-2-3-4-5

Тебе может это понравится...

Добавить комментарий