为了账号安全,请及时绑定邮箱和手机立即绑定

在Python中生成随机字母表的有效方法偏向于流行的字母?

在Python中生成随机字母表的有效方法偏向于流行的字母?

四季花海 2022-09-13 19:59:21
我想生成一个随机字母,但随机性偏向于字母的受欢迎程度。例如,“E”是英语字母表中最常见的字母,因此它应该具有最高的概率。我发现这个频率表来定义一个字母的受欢迎程度。我幼稚的方法如下:import randompopularity_dict =  {'E': 21912, 'T': 16587, 'A': 14810, 'O': 14003, 'I': 13318, 'N': 12666, 'S': 11450, 'R': 10977, 'H': 10795, 'D': 7874, 'L': 7253, 'U': 5246, 'C': 4943, 'M': 4761, 'F': 4200, 'Y': 3853, 'W': 3819, 'G': 3693, 'P': 3316, 'B': 2715, 'V': 2019, 'K': 1257, 'X': 315, 'Q': 205, 'J': 188, 'Z': 128}#scraped from the given linkletter_list = []for letter, popularity in popularity_dict.items():    letter_list.extend([ letter] * popularity)print(random.choice(letter_list))我想知道是否有更有效的方法解决这个问题
查看完整描述

1 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

import random


popularity_dict =  {'E': 21912, 'T': 16587, 'A': 14810, 'O': 14003, 'I': 13318, 'N': 12666, 'S': 11450, 'R': 10977, 'H': 10795, 'D': 7874, 'L': 7253, 'U': 5246, 'C': 4943, 'M': 4761, 'F': 4200, 'Y': 3853, 'W': 3819, 'G': 3693, 'P': 3316, 'B': 2715, 'V': 2019, 'K': 1257, 'X': 315, 'Q': 205, 'J': 188, 'Z': 128}


print(random.choices(population=list(popularity_dict.keys()), weights=list(popularity_dict.values())))

哦,如果你需要更多的随机字母 - 比如十个 - 只需添加到参数列表中。k=10


查看完整回答
反对 回复 2022-09-13
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信