用平方值更新相同的列表

时间:2019-01-28 13:39:00

标签: python python-3.x python-3.6

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

list1 = [1,2,3,4]

和Output应该是带有平方值的相同列表:

list1 = [1,4,9,16]

我不想使用其他列表。 请帮忙吗?

3 个答案:

答案 0 :(得分:4)

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

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

使用[:]可以就地更改列表,并且使用生成器(...)而不是列表理解[...]不会创建临时列表(在这种情况下问题)。 (但请注意,如果您引用该列表的 element ,则该引用将不会更新。)

答案 1 :(得分:2)

您可以使用topics,但这不适当地使用。它取代了列表。为了真正做到这一点,您需要遍历每个项目:

list1 = list(map(lambda x: x**2, list1))

答案 2 :(得分:0)

尝试一下:

new InternetCheck(new InternetCheck.Consumer() {
            @Override
            public void accept(Boolean internet) {
                Log.d("Internet", "Internet Connection" + internet);
            }
        }).execute();

或:

list1 = list(map(lambda x:x*x, list1))