使用zip和enum时使用索引访问列表

2024-04-27 22:48:42 发布

您现在位置:Python中文网/ 问答频道 /正文

此代码给出错误“字符串索引超出范围”。为什么以及如何解决这个问题?在

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]

Tags: 字符串代码inhomeforif错误zip
3条回答

我不知道你想得到什么,但是如果你想在你的前一个输入,为什么不使用prarabdh[I]和praradbh[I-1]?当然,普拉拉德赫和b。。。在

您正在迭代字符串列表,因此a和{}已经是字符串。您不需要使用b[i]。您得到了一个错误,因为您试图访问字符串中不存在的位置(例如,b中的元素2只有长度1)。在

我猜你想要的是:

if 'a' == b:
    print prarabdh[i-1]

也就是说,如果您到达prarabdh中的一个元素'a',那么您希望打印上一个元素。但是,如果第一个元素是'a',这将产生一个特殊的结果(打印prarabdh中的最后一个元素)。此外,还不清楚为什么要首先使用zip,因为在循环中从来没有使用过第一个列表(也就是说,您根本不使用变量a)。在

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的其余部分出错

相关问题 更多 >