У меня есть большой список, который выглядит примерно так (но способ больше)Сравнение элементов списка массивов
lista = [(array([ 0., 0., 0.]), array([ 0., 0., 0.]), array([ 0., 0., 0.])),
(array([ 0., 0., 0.]), array([ 0., 0., 0.]), array([ 0., 0., 1.])),
(array([ 0., 0., 0.]), array([ 0., 1., 0.]), array([ 0., 0., 0.])),
(array([ 0., 0., 0.]), array([ 0., 1., 0.]), array([ 0., 0., 1.])),
(array([ 1., 0., 0.]), array([ 0., 0., 0.]), array([ 0., 0., 0.])),
(array([ 1., 0., 0.]), array([ 0., 0., 0.]), array([ 0., 0., 1.]))]
Вы не можете увидеть его в маленьком экстракте я поставил, но есть некоторые элементы, которые повторение. Мне нужно, чтобы дубликаты исчезли.
Я попытался сделать
newlist = []
for a in lista:
if np.all(a not in newlist):
newlist.append(a)
Но он не работает, и он возвращает
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Не понимаю, почему он не работает. Необходимо сравнить каждый элемент в моем списке как список массивов.
изменить: дубликат может быть любым элементом списка. Это дубликат, если один элемент, кортеж, разделяет те же самые массивы в том же порядке, что и другой кортеж.
(array([ 0., 0., 0.]), array([ 0., 0., 0.]), array([ 0., 0., 0.]))
ли дублирующие элементы массивов сами по себе, или элементы внутри основного списка? – TheNavigat
, это будет, например, '(array ([0., 0., 0.]), array ([0., 0., 0.]), array ([0., 0., 0.])) ' –
Пока неясно, что вы определяете как« дубликаты ». Вы хотите удалить дубликаты массивов для каждого кортежа внутри вашего списка? или удалить дублированные массивы по всем кортежам в вашем списке? – sirfz