Я новичок в Python и получил следующую задачу:Добавить элемент в список, если уже не существует
a = [[0,abc,1],[0,def,1]]
b = [abc,jkl]
Вывод должен быть:
c = [[0,abc,1],[0,def,1],[0,jkl,1]]
Может кто-нибудь помочь мне там?
Я новичок в Python и получил следующую задачу:Добавить элемент в список, если уже не существует
a = [[0,abc,1],[0,def,1]]
b = [abc,jkl]
Вывод должен быть:
c = [[0,abc,1],[0,def,1],[0,jkl,1]]
Может кто-нибудь помочь мне там?
Это можно сделать с помощью следующего кода:
In [3]: a = [[0,'abc',1],[0,'def',1]]
In [4]: b = ['abc','jkl']
In [5]: c = a[:]
In [6]: c.extend([[0,e,1] for e in b if e not in [x for _,x,_ in a]])
In [7]: c
Out[8]: [[0, 'abc', 1], [0, 'def', 1], [0, 'jkl', 1]]
Надеется, что это помогает!
Большое спасибо, это работает как шарм :) – moatze
@VigneshKalai, выполнив «c = a [:]« Я справляюсь с a до c. –
@VigneshKalai Я отредактировал его некоторое время назад, перед вашим коммантом :) –
использовать не, чтобы проверить, если он содержит или не
a = [[0,abc,1],[0,def,1]]
b = [abc,jkl]
c = []
for i in a:
if i not in c:
c.append(i)
for j in b:
if j not in c:
c.append(j)
Это совсем не работает. Вы просто добавляете все элементы из a и b в список c. – moatze
Как насчет этого?
>>> a = [[0,'abc',1],[0,'def',1]]
>>> b = ['abc','jkl']
>>> c = a[:]
>>> for i in b:
... if [0,i,1] not in a:
... c.append([0,i,1])
...
>>> c
[[0, 'abc', 1], [0, 'def', 1], [0, 'jkl', 1]]
Какая логика между входом и выходом? –