字符串索引超出范围(长度不同错误)
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]
问题是列表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]