如何将给定列表中的每个元素替换为其正方形,而不用正方形创建新列表

时间:2019-07-07 09:21:23

标签: python-3.x

我想制作一个函数,该函数接受一个整数列表,并将列表中的元素替换为其各自的正方形。

我尝试根据列表中每个元素的位置(索引)来重新分配它们,但是由于某种原因,列表中的第二个元素平方两次。

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]

2 个答案:

答案 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])毫无用处。