首页 > 解决方案 > 使用平方值更新相同的列表

问题描述

我想在 python3 中声明一个列表,然后用平方值更新它。例如

list1 = [1,2,3,4]

和输出应该是具有平方值的相同列表:

list1 = [1,4,9,16]

我不想使用另一个列表。请帮忙?

标签: pythonpython-3.xpython-3.6

解决方案


您可以将切片分配与生成器表达式一起使用:

>>> list1 = [1,2,3,4]
>>> list2 = list1
>>> list1[:] = (x**2 for x in list1)
>>> list2
[1, 4, 9, 16]

使用[:],它会就地更改列表,并且通过使用生成器(...)而不是列表推导[...],它不会创建临时列表(以防出现问题)。(但请注意,如果您引用了该列表的某个元素,则该引用将不会被更新。)


推荐阅读