找回密码
 会员注册
查看: 22|回复: 0

Python中的random.choices详解

[复制链接]

4

主题

0

回帖

13

积分

新手上路

积分
13
发表于 2024-9-6 12:12:32 | 显示全部楼层 |阅读模式
1.什么是random.choices函数?random.choices是Python标准库中random模块提供的一个函数,用于从给定的序列中随机选择一个值。这个函数可以用于实现随机抽样、按照概率进行选择等功能。random.choices(population,weights=None,*,cum_weights=None,k=1)函数的参数解释如下:population:必需参数,指定要进行选择的序列(可以是列表、元组等)。weights:可选参数,指定每个元素的权重(概率)。如果不指定,则默认每个元素的权重相等。cum_weights:可选参数,指定累计权重。如果指定了cum_weights,则必需省略weights参数。k:可选参数,指定要选择的元素个数。默认为1,即只选择一个元素。2.random.choices函数的用法示例示例1:从列表中随机选择一个元素importrandomfruits=['apple','banana','orange','grape','watermelon']chosen_fruit=random.choices(fruits)print(chosen_fruit)'运行运行运行结果['grape'] 示例2:按照概率从列表中随机选择一个元素importrandomfruits=['apple','banana','orange','grape','watermelon']weights=[0.1,0.2,0.3,0.2,0.2]chosen_fruit=random.choices(fruits,weights=weights)print(chosen_fruit)'运行运行运行结果['orange'] 示例3:选择多个元素importrandomfruits=['apple','banana','orange','grape','watermelon']chosen_fruits=random.choices(fruits,k=3)print(chosen_fruits)'运行运行运行结果['banana','apple','watermelon'] 示例4:利用cum_weights参数选择元素 importrandomfruits=['apple','banana','orange','grape','watermelon']cum_weights=[0.1,0.4,0.7,0.9,1.0]chosen_fruit=random.choices(fruits,cum_weights=cum_weights)print(chosen_fruit)'运行运行运行结果['grape'] 示例5:选择多个元素并计算选择的次数importrandomfruits=['apple','banana','orange','grape','watermelon']chosen_fruits=random.choices(fruits,k=1000)fruit_counts={}forfruitinchosen_fruits:iffruitinfruit_counts:fruit_counts[fruit]+=1else:fruit_counts[fruit]=1print(fruit_counts)'运行运行 运行结果{'orange':334,'grape':192,'apple':203,'watermelon':152,'banana':119}3.总结random.choices函数是Python中一个非常有用的函数,可以用于实现随机抽样、按照概率进行选择等功能。通过合理地使用参数,我们可以根据需求选择单个或多个元素,并可以对选择的元素进行计数等操作。通过阅读本文,你应该对random.choices函数有了更深入的理解,并可以灵活地将其应用于自己的编程任务中。4.特别提醒random.choices在k>1时,也就是选择的元素个数大于1时,元素是有可能重复的。要想得到一个不重复的随机数列,请自行编写方法。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-10 05:13 , Processed in 0.421721 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表