我想制作一个函数,该函数接受一个整数列表,并将列表中的元素替换为其各自的正方形。
我尝试根据列表中每个元素的位置(索引)来重新分配它们,但是由于某种原因,列表中的第二个元素平方两次。
def square_list(list1):
for i in list1:
list1[list1.index(i)] = i**2
print(list1)
square_list([1, 2, 3, 4, 5])
我希望打印的列表为[1, 4, 9, 16, 25]
,因为我正在测试功能的列表为[1, 2, 3, 4, 5]
。
答案 0 :(得分:0)
Python的map
内置函数对此非常有用,因此您实际上不必编写自己的函数。
l = [1, 2, 3, 4, 5]
l = list(map(lambda x: x**2, l))
答案 1 :(得分:0)
如果需要一个函数来将列表元素就地正方形,请使用它:
def square_list(list_1):
for i in range(len(list_1)):
list_1[i] = list_1[i]**2
my_list = [1, 2, 3, 4, 5]
square_list(my_list)
print(my_list)
由于该函数不返回任何内容,因此square_list([1, 2, 3, 4, 5])
毫无用处。