这个问题在这里已有答案:
def mult(numbers):
return [10] * len(numbers)
number = [1,2,5,6,7,8,10]
mult(number)
我期待[10,20,50.......]
的输出,但这是我得到[10, 10, 10, 10, 10, 10, 10]
的输出
这是你在做什么,注释:
def mult(numbers):
return [10] * len(numbers)
# [10] --> Take the list [10]
# len(numbers) --> Take the length of the list `numbers`, which has 7 elements
# [10] * len(numbers) --> repeat [10] seven times, to get [10, 10, 10, 10, 10, 10, 10]
我认为问题是你误解了len()
函数的作用,以及*
(乘法)运算符如何与列表一起工作。如果你想将每个数字乘以10,你会做这样的事情:
def mult(numbers):
multed = [] # create an empty list to store the result
for num in numbers: # iterate through the elements in `numbers` one by one
multed.append(10 * num) # add (10 * element) to our new list
return multed # return the list we've created
Python也有列表推导,使这段代码更简洁:
def mult(numbers):
return [10*num for num in numbers]
# this does the same thing as above
我就是这样做的
def mult(numbers):
return [10*i for i in numbers]
number = [1,2,5,6,7,8,10]
mult(number)
你的方法只是取值10
并复制等于输入数组的len
的次数。
我想你应该这样试试。
def mult(number):
return 10 * number
number = [1,2,5,6,7,8,10]
answer = []
for i in number:
answer.append(mult(i))
print(answer)