列表索引必须是整数(slit.function)

时间:2019-04-26 13:26:21

标签: python-3.x string

我正在尝试做一个简单的程序。这些字符串中是否有[a,an,the]中的任何一个,我应该获取它出现的次数。

我已经创建了一个列表,并拆分了string。但是,当我尝试访问列表中的元素时,出现错误:列表索引必须是整数,而不是str。我知道问题是->如果string.split()中的v [i]。应该是i在string.split()中。但是i指的是位置,我想比较位置v [i]中的状态。

v=['a','an','the']
def contain():
    global count
    count=0
    string=input('Digit your string\n')
    for i in v:
        if v[i] in string.split():
            count=count+1
    return count
print(contain())

2 个答案:

答案 0 :(得分:1)

您已经遍历了元素。

for e in vfor i in range(len(v)): e = v[i]

答案 1 :(得分:0)

for f in os.listdir('<path>'):
    name, ext = os.path.splitext(f)
    if ext == '.img':
        #do stuff

因此,您需要:

for i in v: # gaves you : i ='a', i='an', i='the'
    if v[i] in string.split(): #  v['the'] you are trying to get item from v but you are providing string instead of index ex: v['the'] 

或:

    for i in range(len(v)):  # gaves you : i =0, i=1, i=2
       if v[i] in string.split(): # v[0], v[1], where v[0] is 'a' ...
           count=count+1