Python提取单变量内多列表数据,计算Blackjack游戏分数的均值、众数与频率
解决Blackjack游戏手牌分数统计问题
1. 提取各局游戏分数
你的CSV数据中,每局游戏的分数是每个子列表的最后一个元素,先提取这些分数并转换为整数类型:
import csv from collections import Counter # 读取CSV数据 with open("nathan_project_data.csv", "r") as f: reader = csv.reader(f) game_data = list(reader) # 提取分数并转为整数 scores = [] for game in game_data: score = int(game[-1]) scores.append(score) print("提取的分数列表:", scores)
运行后会得到:提取的分数列表: [21, 17, 18, 18, 19]
2. 计算分数均值
mean_score = sum(scores) / len(scores) print(f"分数均值: {mean_score}")
输出:分数均值: 18.6
3. 计算分数众数
利用Counter统计分数出现次数,找到出现最频繁的分数:
score_counter = Counter(scores) most_common = score_counter.most_common(1) mode_score = most_common[0][0] mode_count = most_common[0][1] print(f"分数众数: {mode_score},出现次数: {mode_count}")
输出:分数众数: 18,出现次数: 2
4. 计算分数频率
统计每个分数的出现频率(出现次数/总游戏局数):
total_games = len(scores) print("分数频率统计:") for score, count in score_counter.items(): frequency = count / total_games print(f"分数{score}: 出现{count}次,频率{frequency:.2f}")
输出:
分数频率统计: 分数21: 出现1次,频率0.20 分数17: 出现1次,频率0.20 分数18: 出现2次,频率0.40 分数19: 出现1次,频率0.20
内容的提问来源于stack exchange,提问作者brozzie
相关产品推荐
相关产品推荐

