Python实现从一个列表数据里随机抽取数据,并且按原有顺序排序
背景:工作中需要实现从多个条件中随机抽取几个条件,进行组合查询的功能。而查询的结果需要按原顺序进行判断是否符合查询条件。
分析:这些条件可以放在列表里,这就需要实现一个功能:从一个列表数据里随机抽取数据,并且按原有顺序排序
python的随机函数ranom有一个random.sample(),其功能是:
random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。 如果k大于sequence元素个数的话会报错。
而这个函数返回的是随机的序列,与原有序列顺序不一定一致。那么就需要写一个方法,来实现。
过程:假设有一个列表list_array=['a','b','c','d','e','f','g','h'],需要随机抽取5个值,成为一个新的队列,那么我们可以写一个函数如下:
def random_list(list,num):
list_temp=[i for i in range(len(list))] #生成一个和list同样长度临时列表,值分别为list的序号。
list_new=random.sample(list_temp,num) #从临时列表中随机抽几个值。
list_new.sort() #排序,按序号从小到大
list_object=[list[i] for i in list_new] #生成目标序列,里面的值为传入list,对应序号的值
return list_object
这个函数结果如何我们可以验证下。
list_result = random_list(list_array,5)
print(list_result )
运行结果显示为:['a', 'b', 'e', 'f', 'h'], 符合原来顺序,完美。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构