我创建了一个函数,该函数应该采用一个数字列表,为每个数字添加一个,然后使用新的(添加到)数字返回该列表。我做错了什么?
def addOne(x):
myList = []
z = 0
for z in lens(x):
myList.append(x[z] + 1)
z = z + 1
return myList
编辑:
尝试下面有人说的这段代码:
def addOne(x):
myList = []
for z in x:
myList.append(z + 1)
return myList
old = [-5, 7, 2, 0]
print addOne(old)
并收到此错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "./a7.py", line 2, in addOne
myList = []
TypeError: 'int' object is not iterable
答案 0 :(得分:1)
首先,for
语句处理z
的值。您不需要在0处启动它,并且您不想要在循环内更改它。
for
语句逐步执行列表x
中的值,而不是索引。 z
按顺序接受各个值:-5,7,2,0。不要将x
用作z
的索引;你已经拥有了所需的价值。添加1并附加到返回列表。
def addOne(x):
myList = []
for z in x:
myList.append(z + 1)
return myList
old = [-5, 7, 2, 0]
print addOne(old)
输出:
[-4, 8, 3, 1]