大家好,我是python开发的新手。我写了一个示例代码:
mylist = ['something','baby','car']
for i,n in mylist:
mylist[i] = mylist[i]+1
print i,n
我知道i
是列表中的索引,因此它将执行列表中元素的数量。但是当我执行脚本时,我得到类型错误...
在此代码中,列表的索引被一个... ...因此预期的结果是。
0 something
1 baby
2 car
而不是我有一个类型错误..请帮助我解决这个问题。任何帮助将不胜感激。谢谢
答案 0 :(得分:3)
非常接近,只是缺少enumerate
-
for i,n in enumerate(mylist):
但是,上面的代码将尝试向字符串添加整数;这将引发新的错误。如果你试图推回元素,你会想要mylist[i] = mylist[i+1]
(注意你必须有一个案例来捕捉最后一个元素)
答案 1 :(得分:0)
这:
mylist = ['something','baby','car']
for i,n in mylist:
mylist[i] = mylist[i]+1
print i,n
在第二行引发ValueError
(“解压缩的值太多”)。
如果您只是在第二行添加enumate
,即for i,n in enumerate(mylist):
,那么您会在下一行获得TypeError
,因为您正在尝试添加字符串({{1 }}和一个整数(mylist[i]
)。关键是:你要增加的是i
,而不是i
(这与mylist[i]
fwiw相同),所以它应该是:
n
但是你不必通过这样的复杂来打印出“index + 1:index at index + 1”,你只需要将for i, n in enumerate(mylist):
i = i + 1
print i, n
参数传递给start
:
enumerate