Как проверить конкретное значение точного соответствия в каждом массиве, который содержится в другом массиве?питон - PullRequest
0 голосов
/ 13 марта 2019

Привет, это мой первый вопрос, поэтому я быстро пытаюсь выполнить процесс дедупликации большого файла имен Excel и других фрагментов данных.Я извлек это, чтобы быть массивом массивов.

Так что arr [0] будет содержать содержимое этого человека, а arr [0] [1] будет содержать фамилию.

У меня возникли проблемы с поиском способа проверить, не дублировали ли я фамилии в моем элементе PER.

мой текущий код в основном такой для проверки условий

if(arr[x][1] in full_arr)

Однако, похоже, я получаю гораздо больше записей, чем должно быть.Питон "in" тоже смотрит на частичные компоненты в других областях массива?как arr [0] [3] содержит электронные письма.

Большое спасибо за вашу помощь!

1 Ответ

0 голосов
/ 13 марта 2019

Вы можете использовать комбинацию zip и set, чтобы проверить, есть ли дубликат в определенной строке вашего многомерного массива:

if len(list(zip(*arr))[1]) != len(set(list(zip(*arr))[1])):
    #if there is at least one duplicate: do some stuff

set удалить дубликат, так что еслиlen(set(array)) != len(array) это означает, что массив имеет несколько дубликатов.

Оператор * распаковывает ваш массив в позиционный аргумент: list(zip(a[0],a[1],a[2],...)) совпадает с list(zip(*a))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...