此代码的目的是返回一个字典,该字典列出较大字符串中子字符串的起始索引。
实施例。 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
答案 0 :(得分:2)
您需要致电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}