#python #list
#питон #Список
Вопрос:
У меня есть список со следующими векторными значениями
list1 = [[-27.1785, -20.7318, -40.724]] list2 = [[-27.1785, -20.7318, -40.724], [-27.1786, -20.7318, -40.724], [27.1786, -20.7318, -40.724]]
Как вы можете видеть , индексы 0 и 1 list2
находятся внутри list1
, но я не могу понять, как найти векторные значения, которые находятся в списке 1 в списке 2, а затем распечатать векторное значение, которое не совпадает с тем, которое должно быть [27.1786, -20.7318, -40.724]
.
Комментарии:
1. Из вашего описания кажется , что вам нужен подсписок, который есть в обоих
list1
иlist2
, это правильно?2. В
list1
нем всегда будет один элемент подсписка,list2
тот, который вернет много подсписков, я хотел бы использовать результат, полученный вlist1
качестве «ключа поиска», чтобы удалить все элементы подспискаlist2
, чтобы затем получить новый список с элементами списка, которых нетlist1
. Я попытался получить массив numpy, но это может быть неправильный подход.
Ответ №1:
l1 = [[-27.1785, -20.7318, -40.724]] l2 = [[-27.1785, -20.7318, -40.724], [-27.1786, -20.7318, -40.724], [-27.1786, -20.7318, -40.724]] z = [x for x in l2 if x not in l1] b_set = set(map(tuple,z)) b = list(map(list,b_set)) print(b)