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']

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)

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]
添加回答
舉報