使用 Python,我希望通过为从数千个数字中随机选择的几个(比方说 500 个)数字添加 +1 或 -1 来更改列表中的数字。
我熟悉随机数生成器,但不确定更改当前数字的下一步是什么。
例如,以下是我想要编辑的一些数字:
array([-0.5887, -0.3948, 2.7303, -0.4915, -0.2842, 2.7168, -0.6298,
-0.2313, 2.5747, -0.5887, -0.3948, 2.7303, -0.6298, -0.2313,
2.5747, -0.7114, -0.4042, 2.6477, -0.4915, -0.2842, 2.7168,
-0.3596, -0.1205, 2.6922, -0.5133, -0.04 , 2.5177, -0.4915,
-0.2842, 2.7168, -0.5133, -0.04 , 2.5177, -0.6298, -0.2313,
2.5747, -0.3596, -0.1205, 2.6922, -0.2133, 0.0692, 2.6638,
-0.3754, 0.1682, 2.469 , -0.3596, -0.1205, 2.6922, -0.3754,
0.1682, 2.469 , -0.5133, -0.04 , 2.5177, -0.2133, 0.0692,
2.6638, -0.0574, 0.2702, 2.6393, -0.219 , 0.3798, 2.4369,
-0.2133, 0.0692, 2.6638, -0.219 , 0.3798, 2.4369, -0.3754,
0.1682, 2.469 ])
最佳答案
在Python中你可以做这样的事情:
import random
x = list(range(1,101))
indices = list(range(len(x)))
change = set(random.sample(indices, 10)) #randomly select 10 indices to change
x = [j+random.choice([-1,1]) if i in change else j for i,j in enumerate(x)]
即使 x
有 300,000 个条目并且您要更改其中的 5000 个条目,代码也能快速运行。使用 set()
是获得良好性能的关键,因为这使得使用 in
非常快。
关于python - 随机改变数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49492173/