Python 统计yaml文件中数字出现的次数

SDUTACM 2020-01-18

背景需求:

公司开发了一个抽奖系统,大概功能是可以设置抽奖号码,然后设置抽奖的等级及数量,再从设置的号码中抽取。

由于是抽奖系统,需要评估一下数字中奖的概率。我对这个系统进行了以下处理

1.编写初始化抽选号码,即根据初始化接口清空已有号码数据

Python 统计yaml文件中数字出现的次数

2.根据设置号码池

Python 统计yaml文件中数字出现的次数

 3.根据抽奖接口返回数据取出中奖号码

Python 统计yaml文件中数字出现的次数

  4.将数据写入yaml文件

Python 统计yaml文件中数字出现的次数

 5.设置100次循环抽奖

Python 统计yaml文件中数字出现的次数

  6.对yaml文件进行处理,读取数据

Python 统计yaml文件中数字出现的次数

  7.按照条件取出数据

Python 统计yaml文件中数字出现的次数

8.取出文件中出现频率最高的数字

Python 统计yaml文件中数字出现的次数

 最后结果为

Python 统计yaml文件中数字出现的次数

 附yaml文件读取代码

import yaml
# 读取yaml文件数据
f = open(‘test.yaml‘)
data = yaml.load(f, Loader=yaml.FullLoader)
print(data)

# 获取出现频次最高数字
def max_list(lt):
    global max_str
    temp = 0
    for i in lt:

        if lt.count(i) > temp:
            max_str = i
            temp = lt.count(i)

    return max_str, temp

# 统计每个数字出现的频次
dict = {}
keys_1 = []
keys_2 = []

for key in data:
    if 0 < int(key) <= 10:
        keys_1.append(key)
        dict[key] = dict.get(key, 0) + 1
    elif 10 < int(key) < 50:
        keys_2.append(key)
        dict[key] = dict.get(key, 0) + 1

print(dict)
print(‘0-10出现次数为{},数字为:{}‘.format(len(keys_1), keys_1))
print(‘10-50出现次数为{},数字为:{}‘.format(len(keys_2), keys_2))
print(‘出现最多次数的为‘, max_list(data))

相关推荐

fly00love / 0评论 2020-05-31