2024-04-27 22:48:42 发布
网友
此代码给出错误“字符串索引超出范围”。为什么以及如何解决这个问题?在
home=['asdf','0','5','1'] prarabdh=['moody','a','b','c'] for i, (a, b) in enumerate(zip(home, prarabdh)): if 'a'==b[i]: print b[i-1]
我不知道你想得到什么,但是如果你想在你的前一个输入,为什么不使用prarabdh[I]和praradbh[I-1]?当然,普拉拉德赫和b。。。在
您正在迭代字符串列表,因此a和{}已经是字符串。您不需要使用b[i]。您得到了一个错误,因为您试图访问字符串中不存在的位置(例如,b中的元素2只有长度1)。在
a
b[i]
b
我猜你想要的是:
if 'a' == b: print prarabdh[i-1]
也就是说,如果您到达prarabdh中的一个元素'a',那么您希望打印上一个元素。但是,如果第一个元素是'a',这将产生一个特殊的结果(打印prarabdh中的最后一个元素)。此外,还不清楚为什么要首先使用zip,因为在循环中从来没有使用过第一个列表(也就是说,您根本不使用变量a)。在
prarabdh
'a'
zip
home=['asdf','0','5','1'] prarabdh=['moody','a','b','c'] for i, (a, b) in enumerate(zip(home, prarabdh)): if 'a'==b: try: print paradbh[i-1] except ValueError: print 'no such index'
这里b是prarabh的元素。没有必要索引它们。由于第二个循环访问b[1],但b='a'。所以没有索引1,这也会导致lopp的其余部分出错
我不知道你想得到什么,但是如果你想在你的前一个输入,为什么不使用prarabdh[I]和praradbh[I-1]?当然,普拉拉德赫和b。。。在
您正在迭代字符串列表,因此}已经是字符串。您不需要使用
a
和{b[i]
。您得到了一个错误,因为您试图访问字符串中不存在的位置(例如,b
中的元素2只有长度1)。在我猜你想要的是:
也就是说,如果您到达
prarabdh
中的一个元素'a'
,那么您希望打印上一个元素。但是,如果第一个元素是'a'
,这将产生一个特殊的结果(打印prarabdh
中的最后一个元素)。此外,还不清楚为什么要首先使用zip
,因为在循环中从来没有使用过第一个列表(也就是说,您根本不使用变量a
)。在这里b是prarabh的元素。没有必要索引它们。由于第二个循环访问b[1],但b='a'。所以没有索引1,这也会导致lopp的其余部分出错
相关问题 更多 >
编程相关推荐