Как добавить элементы в список после проверки его дубликатов в цикле? - PullRequest
0 голосов
/ 11 июля 2019

У меня есть несколько столбцов с номерами кредитных карт вместе с другими номерами не кредитных карт, которые я читаю из файла .csv. Я хочу сначала отфильтровать номера кредитных карт с помощью регулярного выражения, а затем передать каждое из этих значений (номеров карт) в функцию, которая выполняет проверку Luhn, чтобы проверить, действительна ли кредитная карта или нет. Если функция возвращает true, тогда я добавляю значение индекса кредитной карты в список. Я использую значения индекса позже, используя .iloc, чтобы получить всю строку.

Это то, что я сделал до сих пор

  data = pd.read_csv("fetched_data.csv")
  summ = data['summary']
  values =np.array(summ)
  creditcards = []
  regex_match_index_list =[]
  Validcardsfound = 0
  no_duplicate_list =[]
  for i in range(len(values)):
    temp = re.findall(r'(\b(?:\d[ -]*?){13,16}\b)',str(values[i]))
    if temp:
        for each in temp:
            if doLuhn(str(each)) is True:
                #print ("In the loop")
                creditcards.append(each)

                Validcardsfound = Validcardsfound + 1
                regex_match_index_list.append(i)

            elif doLuhn(str(temp)) is False:
                pass



      #print (str(temp))
    else:
        pass

Мой вопрос заключается в том, как удалить дубликаты карточек и затем добавить значения индекса.

Заранее спасибо!

1 Ответ

0 голосов
/ 11 июля 2019

Использование набора может быть способом сделать это:

data = pd.read_csv("fetched_data.csv")
summ = data['summary']
values =np.array(summ)

creditcards = set()
regex_match_index_list =[]
Validcardsfound = 0
no_duplicate_list =[]

for i in range(len(values)):

    temp = re.findall(r'(\b(?:\d[ -]*?){13,16}\b)',str(values[i]))

    if temp:
        for each in temp:
            if doLuhn(str(each)):
                # Add unique valid credit card numbers to set
                if not each in creditcards:
                    creditcards.add(each)   #add new card to set
                    Validcardsfound = Validcardsfound + 1  #increment number of unique cards found
                    regex_match_index_list.append(i) #append index of new card found

print(creditcards) # credit cards found
print(regex_match_index_list) # index of credit cards in values array
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...