You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何随机选取列表中非零元素替换为0,使剩余非零元素数量为5个?

解决方法

核心思路

  • 先筛选出列表中所有非零元素的索引
  • 算出需要置零的非零元素数量:现有非零元素总数 - 5
  • 从非零索引中随机抽取对应数量的索引,将对应位置的值改为0即可

Python 实现代码

import random

A = [0, 1, 2, 3, 4, 5, 0, 6, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0]
# 提取所有非零元素的索引
non_zero_idx = [i for i, val in enumerate(A) if val != 0]
# 计算需要置零的非零元素数量
need_remove = len(non_zero_idx) - 5

if need_remove > 0:
    # 随机选择要置零的索引
    remove_idx = random.sample(non_zero_idx, need_remove)
    for i in remove_idx:
        A[i] = 0

print(A)

效果说明

原列表共有8个非零元素,运行代码后会随机将其中3个非零元素置为0,最终列表仅剩5个非零元素,每次运行结果都不相同,符合随机选取的要求。

内容的提问来源于stack exchange,提问作者czy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:57:04