金天牛

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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'], 符合原来顺序,完美。

posted on   金天牛  阅读(2039)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示