сравнить два разных размера массива (компонент A находится в B) - PullRequest
1 голос
/ 24 мая 2019

Что я хочу сделать, так это два разных размера массива Пусть

A = [[1,3,1],[2,4,1],[3,3,1]]
B = [[1,3,1],[2,5,1],[2,3,1],[3,3,1],[5,5,1]]

Ряд Б может в А или нет ( [1,3,1], [3,3,1] is in A )

Что я хочу сделать из этих массивов, так это сравнить два массива, чтобы построить массив "C", который состоит из строк B, который находится в A

C = [[1,3,1], [3,3,1]]

Я пробовал pandas.isin, но потерпел неудачу .. Любая идея будет очень полезна

Ответы [ 3 ]

2 голосов
/ 24 мая 2019

Использование set.intersection

Ex:

A = [[1,3,1],[2,4,1],[3,3,1]]
B = [[1,3,1],[2,5,1],[2,3,1],[3,3,1],[5,5,1]]

A = map(tuple, A)
B = map(tuple, B)
print(set(A).intersection(set(B)))

Выход:

{(3, 3, 1), (1, 3, 1)}
0 голосов
/ 24 мая 2019

Или с filter:

print(list(filter(lambda x: x in A.tolist(), B.tolist())))

Выход:

[[1, 3, 1], [3, 3, 1]]
0 голосов
/ 24 мая 2019

Вы можете получить общие элементы из обоих списков:

>>> A = [[1,3,1],[2,4,1],[3,3,1]]
>>> B = [[1,3,1],[2,5,1],[2,3,1],[3,3,1],[5,5,1]]
>>> print([data for data in A if data in B])
[[1, 3, 1], [3, 3, 1]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...