第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

遍歷字符串列表,查找關(guān)鍵字并打印

遍歷字符串列表,查找關(guān)鍵字并打印

MMTTMM 2023-02-22 19:08:48
取兩個(gè)由字符串組成的列表:strings = ['hello everyone!', 'how are you doing?', 'are you doing well?', 'are you okay?', 'good, me too.']searching_for = ['are', 'you', 'doing']我的目標(biāo)是搜索strings中的每個(gè)項(xiàng)目searching_for并打印包含這些關(guān)鍵字的完整字符串。即,我希望我的輸出是:Output: ['how are you doing?', 'are you doing well?']請注意,輸出只是 中的第 2 和第 3 項(xiàng)strings,它不包含第 4 項(xiàng)。我不確定為什么這對我來說如此困難,但我認(rèn)為這歸結(jié)為我還不夠了解 Python。我想讓這個(gè)足夠通用,這樣我就可以在一個(gè)非常大的字符串列表中搜索我給它的關(guān)鍵字。到目前為止,這是我的解決方案:def search(*args):    arg_list = []    search_for = numpy.append(arg_list, args)        for i in strings:        for j in search_for:            if all(j in i) is True:                print(i)但這會拋出一個(gè)TypeError: 'bool' object is not iterable. 我嘗試了上述代碼的幾個(gè)不同的迭代,使用 Python 的內(nèi)置filter函數(shù)和其他一些函數(shù),但我一直被類似的錯(cuò)誤所困擾。我也不確定這是否會給我一個(gè)列表,我認(rèn)為它會在終端的新行中吐出結(jié)果。
查看完整描述

5 回答

?
慕斯王

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊

在 python 中有一個(gè)叫做list comprehension的東西,它比長循環(huán)結(jié)構(gòu)更有效且更容易閱讀for。要?jiǎng)?chuàng)建您要查找的列表,這是列表理解的示例:


result = [s for s in strings if all(sf in s for sf in searching_for)]

# ['how are you doing?', 'are you doing well?']

它按照它所說的那樣做,在我看來是直截了當(dāng)?shù)模?/p>


創(chuàng)建一個(gè)列表(括號)

s變量中的字符串strings

如果可以找到sf變量的所有字符串searching_fors


查看完整回答
反對 回復(fù) 2023-02-22
?
幕布斯7119047

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

all(or any) 將嘗試遍歷它的輸入;and Trueor False(作為 的結(jié)果j in i)不是可迭代的。這是導(dǎo)致TypeError:


all(True)

# TypeError: 'bool' object is not iterable

相反,讓你的內(nèi)循環(huán)更簡單:


def search(*args):

    arg_list = []

    search_for = numpy.append(arg_list, args)

    

    for i in strings:

        if all(j in i for j in search_for):

            print(i)

或者更簡單:


def search(args):

    for i in strings:

        if all(j in i for j in args):

            print(i)

輸出:


search(searching_for)

# how are you doing?

# are you doing well?

請注意,您不需要all(...) is Truesince allwould already have returned either TrueorFalse


查看完整回答
反對 回復(fù) 2023-02-22
?
人到中年有點(diǎn)甜

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊

strings = ['hello everyone!', 'how are you doing?', 'are you doing well?', 'are you okay?', 'good, me too.']

keywords = ['are', 'you', 'doing']


for s in strings:

    for word in s.split():

        if word in keywords:

            print(s) 

            break


查看完整回答
反對 回復(fù) 2023-02-22
?
幕布斯6054654

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊

嘗試這個(gè):


for st in strings:

    if set(searching_for).issubset(set(st[:-1].split())):

        print(st)


查看完整回答
反對 回復(fù) 2023-02-22
?
慕娘9325324

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊

你可以試試

print([i for i in strings if all([s in i for s in searching_for])])

輸出

['how are you doing?', 'are you doing well?']

此列表理解將檢查searching_for列表中的所有單詞是否在每個(gè)句子中strings,如果是,它將打印該句子。


查看完整回答
反對 回復(fù) 2023-02-22
  • 5 回答
  • 0 關(guān)注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號