字符串索引超出范围(长度不同错误)

String index out of range (different in length error)

问题是列表l1中的字符串数量比your_name_no中的str数量长,所以当我尝试将索引与字符匹配时,由于长度原因匹配错误差异,我试图使用 if 函数排除,但没有用。

你应该像这样设置 if 条件:

if r < len(your_name)

因为最后一个索引比列表的长度小 1,因为列表从索引 0 开始。

出现此错误是因为列表或字符串的 len 从 1 而不是 0 开始计数,这与索引的工作方式相反。例如:

a = 'hello'
print(len(a))
Output:
5

但是,如果您要遍历 5 个值的索引,您会得到索引错误,因为 a[5] 不存在,该字符串中没有第五个元素(因为它从 0 开始并继续最多 4 个)。

您可以按照@Barmar 的建议将 <= 更改为 < 或在 for 循环中应用条件时添加 -1 来解决此问题:

for r in range(0,len(l1)):
  if r < len(your_name):
     print(r, your_name[r]

或者:

for r in range(0,len(l1)):
   if r <= (len(your_name)-1):
     print(r, your_name[r]