我想在python3中声明一个列表,然后用平方值更新它。 例如
list1 = [1,2,3,4]
和Output应该是带有平方值的相同列表:
list1 = [1,4,9,16]
我不想使用其他列表。 请帮忙吗?
答案 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))