Python中随机用另一数组替换指定比例元素的实现问题
解决方案
要实现随机替换数组a中20%的元素为数组b对应索引的元素,核心是随机挑选不重复的目标索引,避免连续替换的问题。以下是具体实现步骤和代码:
- 定义原始数组:
a = [1,20,21, 67,4, 20, 90, 54,90, 78] b = [3, 654, 342, 309, 245, 213, 984, 56, 89, 23]
- 计算需要替换的元素数量(数组长度的20%):
replace_count = int(len(a) * 0.2)
- 从数组索引中随机挑选不重复的目标索引:
使用random.sample()可以从指定范围内随机选择指定数量的不重复元素,彻底解决连续替换的问题:
import random # 生成0到数组长度-1的随机不重复索引 target_indices = random.sample(range(len(a)), replace_count)
- 遍历选中的索引,替换数组a的对应元素:
for idx in target_indices: a[idx] = b[idx]
示例结果(随机生成,每次运行结果不同)
比如某次运行选中索引1和8,替换后a的结果为:[1, 654, 21, 67, 4, 20, 90, 54, 89, 78]
内容的提问来源于stack exchange,提问作者King__Yash
相关产品推荐
相关产品推荐

