Сравнение массива с повторениями в списке - PullRequest
0 голосов
/ 21 июня 2019

После предыдущего вопроса следующим Сравнивая элементы списка со столбцом в массиве numpy , я реализовал следующий код для сравнения элементов списка с массивом.

list=['M', 'R', 'W']
array=[['M',360.0, 360.0],['R', 135.9, 360.0],['W', 101.4, -125.4], ['Y', 115.8, -160.4],['Y', 115.8, -160.4],['W', 101.4, -125.4]]

new_array = [x for x in array if x[0] in list]
print(new_array)

Вывод как показано ниже.

new_array=[['M', 360.0, 360.0], ['R', 135.9, 360.0], ['W', 101.4, -125.4], ['W', 101.4, -125.4]]

Здесь мы видим, что "W" повторяется дважды.

Как я могу взять только самые подходящие элементы в списке и игнорировать остальные, если они присутствуют в списке.

Таким образом, результат должен быть следующим:

new_array=[['M', 360.0, 360.0], ['R', 135.9, 360.0], ['W', 101.4, -125.4]]

1 Ответ

1 голос
/ 21 июня 2019

Вы можете использовать index, который вернет 1-й матч

l1=[x[0] for x in array]
[array[y] for y in [l1.index(x) for x in l]]
[['M', 360.0, 360.0], ['R', 135.9, 360.0], ['W', 101.4, -125.4]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...