Как выполнить поиск элемента списка в другом списке в Python? - PullRequest
1 голос
/ 24 апреля 2020

Я хочу найти элементы списка имен в banklist, и если элемент найден в banklist, вернуть этот элемент, а также элемент после него.

Так, например: Namelist: 'John Doe' «Джек Блэк». Список банков: «Джон Доу», «9134», «Ричард Питт», «1652», «Джек Блэк», «9145», «Боб Бранд», «6523»

Я хочу, чтобы это возвращалось: «Джон Доу, 9134 ',' Джек Блэк, 9145 '

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

Результат: «Джон Доу, 9134». Желаемый результат: «Джон Доу, 9134», «Джек Блэк, 9145».

f = open('namelist.txt', 'r')
namestring = f.read()
f.close()

f = open('testsheet.csv', 'r')
bankstring = f.read()
f.close()

namestring = namestring.replace(", ", ",")
namelist = namestring.split(",")

banklist = bankstring.split("\n")
bankstring = ','.join(banklist)
banklist = bankstring.split(",")

n = banklist.index(namelist[1])
res = banklist[n] + "," + banklist[n+1]

print(res)

1 Ответ

1 голос
/ 24 апреля 2020

Упрощение проблемы, используя enumerate на bank_list и печатая имя и номер, если элемент из него существует в name_list:

name_list = ['John Doe', 'Jack Black']
bank_list = ['John Doe', '9134', 'Richard Pitt', '1652', 'Jack Black', '9145', 'Bob Brand', '6523']

for ind, elem in enumerate(bank_list):
    if elem in name_list:
        print(elem, bank_list[ind + 1])

ВЫХОД:

John Doe 9134                                                                                                                 
Jack Black 9145
...