本文主要是介绍python的random模块三choices和shuffle(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
choices()从给定序列中随机选取元素序列
语法:
random.choices(population, weights=None, *, cum_weights=None, k=1)
- population:必须是一个序列,可以是列表,元组,字符串等等。表示要从中选取元素的序列。
- weights:可选参数。必须是一个数字序列,长度必须和population相同。表示每个元素被选中的概率,可以是小数,但必须大于等于0。
- cum_weights:可选参数。必须是一个数字序列,长度必须和population相同。表示累计权重,即前n个元素被选中的概率,如果指定了cum_weights,那么不能同时指定weights。
- k:可选参数。表示要选取的元素个数,默认值是1。
例子:
import randomseq1 = range(1,10)print(seq1)# 从1-10中随机选取一个数,2被选中的概率是3/9,其他数字被选中的概率是1/7num = random.choices(seq1, weights=[1, 3, 1, 1, 1, 1, 1, 1, 1])print(num)# 随机生成序列,每一个数字出现的概率都是1/7num1 = random.choices(seq1, weights=[1, 1, 1, 1, 1, 1, 1, 1, 1],k=7)print(num1)
shuffle() 将序列中所有元素随机排序
语法:
random.shuffle(x)
x 是一个序列
例子:
import randomlist = [20, 16, 10, 5];random.shuffle(list)print("随机排序列表 : ", list)
结果:
随机排序列表 : [10, 16, 20, 5]
例子2:choices()和shuffle()结合使用,生成扑克牌、洗牌、发牌
import random# 生成一副扑克牌,四种花色heart -- 红桃 spade -- 黑桃 club -- 梅花 diamond -- 方块# 数字: two,three,four,five,six,seven,eight,nine,ten# 非数字:J是Jack; Q是Queen; K是King; A是Ace ;# 大鬼 red joker 小鬼 black jokerjokers = ['redjoker','blackjoker']suits = ['♠', '♥', '♦', '♣']ranks = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']deck = [rank + suit for suit in suits for rank in ranks] + jokers# 洗牌random.shuffle(deck)print('洗牌后的所有牌:',deck)# 发牌,三个人,每人18张牌size,rest = divmod(len(deck),3)players = list()for i in range(3):deck_tmp = deck[i*size:(i+1)*size]players.append(deck_tmp)print(players)结果:
洗牌后的所有牌: ['6♠', 'A♠', '5♣', '8♣', '10♠', '10♦', '3♦', 'K♦', 'A♦', '4♠', '7♥', 'redjoker', '6♣', '7♣', 'J♦', '5♠', '2♣', '3♠', 'Q♥', 'blackjoker', 'J♣', 'J♠', '9♠', '2♦', 'J♥', '5♥', '9♦', '2♥', 'Q♣', '4♦', '8♦', 'K♠', 'A♥', '10♣', 'Q♠', '10♥', '9♣', '4♥', 'Q♦', '2♠', '7♦', '3♥', '6♦', 'K♣', '7♠', '8♠', '9♥', 'K♥', '4♣', '8♥', '3♣', '6♥', 'A♣', '5♦']
[['6♠', 'A♠', '5♣', '8♣', '10♠', '10♦', '3♦', 'K♦', 'A♦', '4♠', '7♥', 'redjoker', '6♣', '7♣', 'J♦', '5♠', '2♣', '3♠'], ['Q♥', 'blackjoker', 'J♣', 'J♠', '9♠', '2♦', 'J♥', '5♥', '9♦', '2♥', 'Q♣', '4♦', '8♦', 'K♠', 'A♥', '10♣', 'Q♠', '10♥'], ['9♣', '4♥', 'Q♦', '2♠', '7♦', '3♥', '6♦', 'K♣', '7♠', '8♠', '9♥', 'K♥', '4♣', '8♥', '3♣', '6♥', 'A♣', '5♦']]
这篇关于python的random模块三choices和shuffle()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!