python - 使用平方值更新相同的列表
问题描述
我想在 python3 中声明一个列表,然后用平方值更新它。例如
list1 = [1,2,3,4]
和输出应该是具有平方值的相同列表:
list1 = [1,4,9,16]
我不想使用另一个列表。请帮忙?
解决方案
您可以将切片分配与生成器表达式一起使用:
>>> list1 = [1,2,3,4]
>>> list2 = list1
>>> list1[:] = (x**2 for x in list1)
>>> list2
[1, 4, 9, 16]
使用[:]
,它会就地更改列表,并且通过使用生成器(...)
而不是列表推导[...]
,它不会创建临时列表(以防出现问题)。(但请注意,如果您引用了该列表的某个元素,则该引用将不会被更新。)
推荐阅读
- docker - 如何使用 dns 从主机访问 docker 网络?
- javascript - 从 Javascript 调用 Wicket - ajax 请求未完成
- angularjs - AngularJS ng-if 具有真或假对象值
- java - 如何处理 CompletableFutures 链中的错误响应?
- python - Beautifulsoup 正在从表格中提取四舍五入的小数(可见的),而不是实际的单元格值
- visual-studio - 在 Visual Studio 中组装打印注册表中的值
- chapel - 用于不良内存管理的良好示例教堂代码?
- php - ajax 数据[0] 未定义
- java - Crystal 报表从 XML 创建报表并将其导出为 PDF,而无需原始 XML 的路径
- c# - Blazor 中的 Razor 视图引擎(在运行时将 blazor 组件转换为 html 字符串)