有一个函数可以将字符串与列表中的项匹配,如果匹配,则返回列表项的索引号。如下所示:
def get_int(get_wd, get_list):
for i, j in enumerate(get_list):
if j == get_wd:
get_i = i
return get_i
主函数中有一个while循环,用于从上面的函数中获取返回整数:
get_wd = []
x = 0
candi = []
while len(li_a) > 0:
iter_a = iter(li_a)
srh_time = len(li_a)
while srh_time > 0:
temp = next(iter_a)
if temp in li_words:
candi.append(temp)
else:
pass
srh_time = srh_time - 1
max_len = max(len(s) for s in candi)
extr_wd = list(set(s for s in candi if len(s) == max_len))
pos = get_int(extr_wd, li_a) ##Calling the function##
get_wd.append(extr_wd)
li_a = li_a[pos + 1:]
我收到此错误消息:
>> li_a = li_a[pos + 1:]
>> TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
对于我所缺少的任何建议?
答案 0 :(得分:2)
我认为get_int期望str
或int
作为第一个list
作为第二个参数,但pos = get_int(extr_wd, li_a)
这两个参数都是list
,你应该解决这个问题。
您可以使用.index
来查找索引
重构get_int
方法:
def get_int(get_wd, get_list):
try:
return get_list.index(get_wd)
except ValueError:
return -1 # not found