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

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

在列表中搜索字符

在列表中搜索字符

DIEA 2021-04-16 18:19:05
我已經進行了大量搜索,但是找不到我想要的。我正在使用Iron Python。我提取了一個很大的字符串列表(MyList),我想看看是否有包含SearchStrings詞典中的Items的值。searchStrings詞典中可能包含500多個項目。MyList = ["123steel","MylistConcrete","Nothinginhere","45","56","steel","CONCRETE"]SearchStrings = {'concrete' : 'C','CONCRETE' : 'C','Steel' : 'S', 'STEEL' : 'S'}我需要返回索引,然后從SearchString返回匹配的代碼。即,如果我們發現'MylistConcrete'我將知道索引“ 1”并可以返回'C'我希望這對每個人都有意義。讓我知道您是否需要任何澄清
查看完整描述

3 回答

?
守著星空守著你

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

遍歷您的項目,MyList并檢查其中是否有所有dict(小寫)鍵的每個項目(小寫)。然后更換。假設您沒有與鍵相同的單詞具有不同的值(小寫/大寫差異除外)


my_list = ["123steel", "MylistConcrete", "Nothinginhere", "45", "56", "steel", "CONCRETE"]

search_strings = {'concrete': 'C', 'CONCRETE': 'C', 'Steel': 'S', 'STEEL': 'S'}


for i in range(len(my_list)):

    for k, v in search_strings.items():

        if k.lower() in my_list[i].lower():

            my_list[i] = v

            break   # avoids completing the loop if first item is found

print(my_list)

結果是


['S', 'C', 'Nothinginhere', '45', '56', 'S', 'C']


查看完整回答
反對 回復 2021-04-20
?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

首先,我建議您使用string.lower()來消除搜索中的大小寫依賴性。這將使您的字典更小,更易于管理。


然后,您可以使用一個簡單的map函數使用您的值創建一個新數組,同時保留索引(或在需要時更改原始數組)。


MyList = ["123steel","MylistConcrete","Nothinginhere","45","56","steel","CONCRETE"]

SearchStrings = {'concrete' : 'C', 'steel' : 'S'}


def check_search_strings(x):

    for k, v in SearchStrings.items():

        if k in x.lower():

            return v

    return None


indexes = list(map(check_search_strings, MyList))


print (indexes)


查看完整回答
反對 回復 2021-04-20
?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

for m in MyList :

    for k in SearchStrings :

        if k.lower() in m.lower() :

            print 'found', k, 'in', m, 'result', SearchStrings[k]


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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