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

如何从Python字典中提取占总数量N%的键值对

实现方案

Python 3.7及以上版本默认保留字典的插入顺序,如果你需要按插入顺序提取前N%的条目,可以直接按以下步骤实现:

  1. 计算待提取的条目数量:用字典总长度乘以N%后取整,你可以根据业务需要选择向下取整、四舍五入或者向上取整,示例场景用向下取整即可
  2. 截取字典前k个键值对生成新字典

按插入顺序提取的代码示例

x = {"a": 1, "b": 2, "c": 3, "d":4, "e": 5, "f": 6}
n_percent = 50  # 提取比例,可自行修改
# 计算需要提取的条目数
k = int(len(x) * n_percent / 100)
# 提取前k个键值对
result = dict(list(x.items())[:k])
print(result) # 输出:{'a': 1, 'b': 2, 'c': 3}

其他常用场景

随机提取N%的条目

如果不需要按固定顺序,要随机抽取的话,可以先打乱键值对顺序再截取:

import random
x = {"a": 1, "b": 2, "c": 3, "d":4, "e": 5, "f": 6}
n_percent = 50
k = int(len(x) * n_percent / 100)
items = list(x.items())
random.shuffle(items)
result = dict(items[:k])

按指定排序规则提取

如果是3.7以前的Python版本,或者需要按键/值的排序规则提取,可以先排序再截取,比如按键的字母正序提取:

x = {"a": 1, "b": 2, "c": 3, "d":4, "e": 5, "f": 6}
n_percent = 50
k = int(len(x) * n_percent / 100)
# 按键排序,你可以修改key参数自定义排序规则
sorted_items = sorted(x.items(), key=lambda item: item[0])
result = dict(sorted_items[:k])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 12:45:01