python中怎么从一个列表中可重复的随机抽取元素构成新列表?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中怎么从一个列表中可重复的随机抽取元素构成新列表?相关的知识,希望对你有一定的参考价值。

用random模块里的sample和randint方法就可以实现你的需求

例,代码:

import random #导入random模块
a=[1,2,2,2,3,'python','test','recode','java'] #测试对象
b=random.sample(a,random.randint(0,len(a))) #随机获取列表参数并赋值给新的变量b
print(b)

结果:

需求已经实现

补充:

sample()里的第一个参数是被操作对象,第二个参数是随机截取的长度。用法:随机截取对象的片段

randint()里的参数是一个整形数范围,比如【0,1000】等等。用法:随机获取给定范围内的数字

len()里的参数是被操作对象。用法:获取对象内的参数个数

参考技术A import string
import random
 
 
class CaptchaCreator:
 
    @staticmethod
    def random_seq(choice_seq, count=6, repeatable=True):
        # 将其中的choice_seq,count 改为你需要的参数
        if repeatable:
            return [random.choice(choice_seq) for _ in range(count)]
        return random.sample(choice_seq, count)
 
    def shuffle(self):
        digits = self.random_seq(string.digits)
        random.shuffle(digits)
        return digits
 
 
if __name__ == '__main__':
    c = CaptchaCreator()
    print(c.shuffle())

在c#中随机抽取数据库中数据且不重复怎么实现SQL语句

这个没必要用一条sql语句来实现,可以采用变通的办法,你在C#程序中定义一个list,每次从数据库中随机抽取一条数据后将这条数据的id放入list中,下次随机抽取数据后去判断这条数据的id是否在list中,如果在则说明重复了,丢弃这条数据重新再取,这可能会有一定的效率损失,但是随机数重复的可能性本来就很小,这点效率损失没什么大不了的。 参考技术A select * from tablename order by newid()追问

这样可以随机抽题,但是会有重复的情况发生,怎么解决啊

参考技术B 建个临时表咯
抽了的不选

以上是关于python中怎么从一个列表中可重复的随机抽取元素构成新列表?的主要内容,如果未能解决你的问题,请参考以下文章

python 列表删除元素问题?

随机优先与权重——非平均概率的选择工具

怎么用python写一个抽奖程序,是抽取图片或视频

用哪个函数可以随机抽取集合中的元素

PPT随机抽题

在c#中随机抽取数据库中数据且不重复怎么实现SQL语句