簡體   English   中英

如何在 Python 的另一個列表中迭代搜索列表元素?

[英]How do I iterate searching for a list element in another list in Python?

我想在 banklist 中搜索 namelist 的元素,如果在 banklist 中找到一個元素,則返回該元素以及它之后的元素。

例如:名單:'John Doe','Jack Black'。 銀行名單:“John Doe”、“9134”、“Richard Pitt”、“1652”、“Jack Black”、“9145”、“Bob Brand”、“6523”

我想要這個返回:'John Doe,9134','Jack Black,9145'

為此,我寫了以下內容。 它可以工作,但我不知道如何迭代它,以便它搜索所有重疊的元素,而不是在第一個元素之后停止。

結果:“John Doe,9134”。 期望的結果:“John Doe,9134”、“Jack Black,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)

簡化問題,使用bank_list上的enumerate並打印名稱和數字(如果其中的元素存在於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])

OUTPUT:

John Doe 9134                                                                                                                 
Jack Black 9145

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM