亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python 在列表中搜索多個單詞

Python 在列表中搜索多個單詞

呼如林 2021-11-16 10:49:56
我有這樣的 Python 列表:['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher']現在我想在我的列表中搜索多個關鍵字,例如:當我嘗試輸入關鍵字老師和銷售時input keywords: teacher sales它應該返回這樣的結果:教師數學老師銷售員銷售經理到目前為止,我已經制作了這樣的代碼:job_list = ['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher']def search_multiple_words(search_words):    search_words = [search_words]    for line in job_list:        if any(word in line for word in search_words):            print(line)search_words = input("input keywords: ")search_multiple_words(search_words)但它只在我輸入一個關鍵字時才有效,而不是像我上面給出的示例那樣輸入多個關鍵字。那么,如何做到這一點..?
查看完整描述

3 回答

?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

job_list = ['assistant manager', 'salesperson', 'doctor', 'production manager',

            'sales manager', 'schoolteacher', 'mathematics teacher']



def search_multiple_words(search_words):

    search_words = search_words.split(' ')


    out = [s for s in job_list if any(xs in s for xs in search_words)]

    print(out)



search_words = input("input words: ")

search_multiple_words(search_words)


查看完整回答
反對 回復 2021-11-16
?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

你可以試試這個


job_list = ['assistant manager', 'salesperson', 'doctor', 'production manager', 

            'sales manager', 'schoolteacher', 'mathematics teacher']


def search_multiple_words(search_words):

    search_words = [search_words]


    for line in job_list:

        if any(word in line for word in search_words):

            print(line)


search_words = input("input keywords: ").split(' ')

for w in search_words:

    search_multiple_words(w)

輸出:


input keywords: sales teacher

salesperson

sales manager

schoolteacher

mathematics teacher


查看完整回答
反對 回復 2021-11-16
?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

您可以使用find()方法。這應該適合你:


lis=['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher']

str1 = ["teacher", "sales"]

x=[]

for y in lis:

    for string in str1:

        if y.find(string) != -1:

            x.append(y)

上面的代碼是為了可讀性和可理解性。但是,它可以使用如下列表推導式壓縮成一個很好的單行:


x = [y for y in lis for string in str1 if y.find(string) != -1]

兩者都做同樣的事情并給出這樣的輸出


['銷售員'、'銷售經理'、'學校老師'、'數學老師']


祝你好運!


查看完整回答
反對 回復 2021-11-16
  • 3 回答
  • 0 關注
  • 375 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號