简单的python 2.7代码有一些问题:“'list'对象没有属性'find'”

时间:2016-11-13 06:59:52

标签: python string python-2.7 list dictionary

此代码的目的是返回一个字典,该字典列出较大字符串中子字符串的起始索引。

实施例。 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 

1 个答案:

答案 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}