Найти - Пользователи
Полная версия: удаление из двух списков одинаковых элементов
Начало » Python для новичков » удаление из двух списков одинаковых элементов
1
o7412369815963
нужно: , -> ,
пока извратился циклами
    r = []
for t in t_old:
if t in t_new: r.append(t)
for t in r:
del t_old[t]
del t_new[t]
    t_old = []
for t in t_old1:
if t not in t_new1: t_old.append(t)
t_new = []
for t in t_new1:
if t not in t_old1: t_new.append(t)
есть более красивое решение?
Андрей Светлов
>>> l1 = [1,2,3]
>>> l2 = [3,4,5]
>>> s = set(l1) & set(l2)
>>> s
set([3])
>>> r1 = [i for i in l1 if i not in s]
>>> r1
[1, 2]
>>> r2 = [i for i in l2 if i not in s]
>>> r2
[4, 5]
PooH
А почему не?
list(set(l1) - set(l2))
list(set(l2) - set(l1))
Андрей Светлов
а порядок? Если он не важен - тогда только множества, конечно.
o7412369815963
PooH
А почему не?
list(set(l1) - set(l2))
list(set(l2) - set(l1))
спасибо, то что нужно
PooH
Андрей Светлов
а порядок? Если он не важен - тогда только множества, конечно.
Точно! Это я упустил.
Ferroman
C сохранением порядка:
r1 = filter(lambda x: x not in l2, l1)
r2 = filter(lambda x: x not in l1, l2)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB