当前位置:   article > 正文

Python中的random.choices详解

random.choices

1. 什么是random.choices函数?

random.choicesPython标准库random模块提供的一个函数,用于从给定的序列中随机选择一个值。这个函数可以用于实现随机抽样、按照概率进行选择等功能。

random.choices(population, weights=None, *, cum_weights=None, k=1)函数的参数解释如下:

  • population:必需参数,指定要进行选择的序列(可以是列表、元组等)。
  • weights:可选参数,指定每个元素的权重(概率)。如果不指定,则默认每个元素的权重相等。
  • cum_weights:可选参数,指定累计权重。如果指定了cum_weights,则必需省略weights参数。
  • k:可选参数,指定要选择的元素个数。默认为1,即只选择一个元素。

2. random.choices函数的用法示例

示例1:从列表中随机选择一个元素

  1. import random
  2. fruits = ['apple', 'banana', 'orange', 'grape', 'watermelon']
  3. chosen_fruit = random.choices(fruits)
  4. print(chosen_fruit)
'
运行

运行结果

['grape'] 

示例2:按照概率从列表中随机选择一个元素

  1. import random
  2. fruits = ['apple', 'banana', 'orange', 'grape', 'watermelon']
  3. weights = [0.1, 0.2, 0.3, 0.2, 0.2]
  4. chosen_fruit = random.choices(fruits, weights=weights)
  5. print(chosen_fruit)
'
运行

运行结果

['orange'] 

示例3:选择多个元素

  1. import random
  2. fruits = ['apple', 'banana', 'orange', 'grape', 'watermelon']
  3. chosen_fruits = random.choices(fruits, k=3)
  4. print(chosen_fruits)
'
运行

运行结果

['banana', 'apple', 'watermelon'] 

示例4:利用cum_weights参数选择元素 

  1. import random
  2. fruits = ['apple', 'banana', 'orange', 'grape', 'watermelon']
  3. cum_weights = [0.1, 0.4, 0.7, 0.9, 1.0]
  4. chosen_fruit = random.choices(fruits, cum_weights=cum_weights)
  5. print(chosen_fruit)
'
运行

运行结果

['grape'] 

示例5:选择多个元素并计算选择的次数

  1. import random
  2. fruits = ['apple', 'banana', 'orange', 'grape', 'watermelon']
  3. chosen_fruits = random.choices(fruits, k=1000)
  4. fruit_counts = {}
  5. for fruit in chosen_fruits:
  6. if fruit in fruit_counts:
  7. fruit_counts[fruit] += 1
  8. else:
  9. fruit_counts[fruit] = 1
  10. print(fruit_counts)
'
运行

 运行结果

{'orange': 334, 'grape': 192, 'apple': 203, 'watermelon': 152, 'banana': 119}

3. 总结

random.choices函数是Python中一个非常有用的函数,可以用于实现随机抽样、按照概率进行选择等功能。通过合理地使用参数,我们可以根据需求选择单个或多个元素,并可以对选择的元素进行计数等操作。

通过阅读本文,你应该对random.choices函数有了更深入的理解,并可以灵活地将其应用于自己的编程任务中。

4.特别提醒

random.choices 在 k>1 时,也就是选择的元素个数大于1时,元素是有可能重复的。要想得到一个不重复的随机数列,请自行编写方法。

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/883495
推荐阅读
相关标签
  

闽ICP备14008679号