问题详细描述:
从列表、字符串、元组等集合中,随机选取指定个数的不重复元素。
相关问题描述:
随机选取指定多个元素、在指定范围内随机生成指定多个不重复数字、随机选取一个元素、随机选取随机个不重复元素。
关键词:
列表、随机、不重复、指定个数、random、sample、choice
解决方案:
1、使用random.sample()函数随机选取多个不重复元素
random.sample()函数可以从列表、字符串、元组等集合中,随机选取指定个数不重复的元素,并将结果作为列表进行输出。
其语句结构为:
random.sample(sep, n)
其中,sep代表列表、字符串、元组等集合或序列,n代表选取的不重复元素的个数。
In [1]: import random
In [2]: str = "Hello World!"
random.sample(str, 3)
Out[2]: ['r', 'l', 'H']
In [3]: lst = ['You', 'need', 'Python', '!', str, 3, 5, 8]
random.sample(lst, 3)
Out[3]: [8, 'Hello World!', 'You']
In [4]: tup = ('You', 'need', 'Python', '!', str, 3, 5, 8, lst)
random.sample(tup, 3)
Out[4]: [3, ['You', 'need', 'Python', '!', 'Hello World!', 3, 5, 8], '!']
2、在指定范围内随机生成指定多个不重复数字
利用random.sample()和range()函数,可以很方便的实现在指定范围内随机生成指定多个不重复数字。
In [5]: num = range(100)
random.sample(num, 10)
Out[5]: [47, 73, 48, 53, 36, 18, 99, 49, 55, 1]
3、使用random.choice()函数随机选取一个元素
random.choice()函数可以从列表、字符串、元组等集合中,随机选取一个元素。
其语句结构为:
random.choice(sep)
其中,sep代表列表、字符串、元组等集合或序列。
In [6]: lst = ['You', 'need', 'Python', '!', str, 3, 5, 8]
random.choice(lst)
Out[6]: 'Python'
因为对于字符串和元组作为序列的情况,和介绍random.sample()函数时差不多,就不每次都将全部集合的类型都举例了,下面的示例也一样。
4、随机选取随机个不重复元素
使用随机函数可以很容易实现选取随机个元素,但要注意不能超过序列的长度,所以利用len()函数作为随机数的上限。
In [7]: lst = ['You', 'need', 'Python', '!', str, 3, 5, 8]
random.sample(lst, random.randint(0,len(lst)))
Out[7]: [8, 'Python', 'need', 'Hello World!', 'You']
因为这是《Python实战》系列文章的第一篇,写的不好的地方,请大家原谅,也请大家多多提出宝贵意见。谢谢!
感谢阅读本文!如有任何问题,欢迎留言,一起交流讨论^_^
欢迎扫描下方二维码,关注“亦说Python”公众号,阅读《Python实战》系列文章的其他篇目。
亦说Python——Python爱好者的学习分享园地