我有一个包含子列表的列表,每个子列表包含2个字符串:
cor = [['s', 'urmange'], ['su', 'rmange'], ['sur', 'mange'], ['surm', 'ange'], ['surma', 'nge'], ['surman', 'ge'], ['surmang', 'e']]
现在我想检查子列表中的每两个元素是否存在于名为dic的字典中,如果这两个元素存在if subL[1] in Dic and subL[2] in Dic:
我将输出如下:
sur mange
否则print("No match with dic")
我怎样才能用Python做到这一点?
这就是我一直在做的事情:
for sub_list in cor:
for i in range (0,len(sub_list)):
if sub_list[i] in my_list and sub_list[i+1] in my_list:
print ("R3: You mean:", sub_list)
我得到下一个输出:
R3: You mean: ['sur', 'mange']
出现此错误:
Traceback (most recent call last):
File "<pyshell#88>", line 3, in <module>
if sub_list[i] in my_list and sub_list[i+1] in my_list:
IndexError: list index out of range
我以为我做错了什么!
答案 0 :(得分:0)
您的代码存在的问题是,您的range
函数正在从&#34; 0&#34;返回i
的值。 to&#34; len(sub_list)-1&#34;。但是在for
循环中,您正试图访问sub_list
的&#34; i + 1&#34;元素。所以,当&#34; i&#34;的价值是len(sub_list) - 1
,&#34; i + 1&#34;成为&#34; len(sub_list)&#34;这不是您的子列表的有效索引(列表的有效索引始终在0到len(列表)的范围内 - 1)。
因此,如果更改范围函数的结束,则代码将正常工作。即你需要使用:
for i in range (0,len(sub_list)-1):
# ^ subtracting one to make it fall in valid range