Python不使用numpy实现二维列表随机抽取元素并替换为指定字符
实现6×6二维列表随机元素替换的方案
你可以直接使用Python内置的random模块实现需求,无需引入numpy等第三方库,以下提供两种常用实现方式:
方案1:精确控制替换元素数量
适合需要固定替换N个元素的场景,可严格控制替换总数,示例代码如下:
import random # 初始化原列表 mylist = [[i for i in range(6)] for j in range(6)] # 生成所有坐标的组合 all_coords = [(row_idx, col_idx) for row_idx in range(6) for col_idx in range(6)] # 随机抽取8个不重复的坐标,可自行修改k值调整替换数量 replace_pos = random.sample(all_coords, k=8) # 生成新的替换后列表,不修改原列表 randomed_list = [row.copy() for row in mylist] for row, col in replace_pos: randomed_list[row][col] = 'x'
方案2:按概率随机替换
适合每个元素按固定概率替换的场景,替换总数会随机波动,更贴合完全随机的需求,示例代码如下:
import random mylist = [[i for i in range(6)] for j in range(6)] # 设置每个元素的替换概率,0.2即20%概率被替换为'x',可自行调整 replace_prob = 0.2 randomed_list = [] for row in mylist: new_row = [] for val in row: if random.random() < replace_prob: new_row.append('x') else: new_row.append(val) randomed_list.append(new_row)
两种方案都完全使用Python内置能力实现,你可以根据自己的实际需求选择,替换的字符'x'也可以换成任意你需要的其他值。
内容的提问来源于stack exchange,提问作者bbang
相关产品推荐
相关产品推荐

