python - 在没有 for 循环的情况下将数组中的所有条目增加 'n'
问题描述
我有一个数组:
arr = [5,5,5,5,5,5]
我想将 arr 中的特定范围增加“n”。所以如果n=2
和 范围是[2,5]
。数组应如下所示:
arr = [5,5,7,7,7,5]
对于我试图解决的问题,需要在没有 for 循环的情况下执行此操作。
试过:
arr[2:5] = [n]*3
但这显然会替换条目并变为:
arr = [5,5,3,3,3,5]
任何建议都会受到高度评价。
解决方案
n = 2
arr_range = slice(2, 5)
arr = [5,5,7,7,7,5]
arr[arr_range] = map(lambda x: x+n, arr[arr_range])
# arr
# [5, 5, 9, 9, 9, 5]
但我建议使用 numpy ...
import numpy as np
n = 2
arr_range = slice(2, 5)
arr = np.array([5,5,7,7,7,5])
arr[arr_range] += n
推荐阅读
- r - Geom_txt 在动画中无法正确显示
- c - 当我们将 char * 转换为 int * 时,后台或内存中会发生什么
- javascript - 如何在 nodejs 后端使用 Dropbox API v2 上传图片
- swift - `return nil` 和 `return` 可以互换吗?
- angular - ngIf 的行为和 Angular 中的属性绑定
- c# - 如何在 C# 中模拟快捷方式?
- r - 在 mutate 中使用引号:mutate_(.dots = ...) 的替代方法
- java - 假的 RestTemplate ajax 端点上有 77 个卡住的线程
- javascript - 检查 Router-flux 中的作用
- python - 在 Outlook for Python 脚本中选择多个邮件