此代码的目的是返回一个字典,该字典列出较大字符串中子字符串的开始索引。
例如matchUp([[a],“ b,” c“,” d“],” abc“)将返回:{” a“:0,” b“:1,” c“:2,” d“:- 1}(以-1为默认空键)
这个问题的提示是,find函数可以告诉您另一个字符串中子字符串的开始索引。这是正确的语法,对吗?我在strArray中有字符数组,而y是我要搜索的子字符串。
def matchUp (strArray, word):
index ={}
for x in strArray:
index [x]=-1
for y in word:
for x in index:
if y in strArray:
index [x]= strArray.find(y)
return index
最佳答案
您需要调用word.find
,而不是strArray.find
。
def matchUp (strArray, word):
index = {}
for ch in strArray:
index[ch] = word.find(ch) # <---
return index
(无需使用嵌套循环)
用法示例:
>>> matchUp(["a", "b", "c", "d"], "abc")
{'a': 0, 'c': 2, 'b': 1, 'd': -1}