gpt4 book ai didi

python - 从 .txt 文件中选择随机分数并找到它们的平均值 (Python)

转载 作者:太空宇宙 更新时间:2023-11-03 15:51:33 26 4
gpt4 key购买 nike

我一直在尝试从 .txt 文件中随机选择分数,然后找出这些随机选择的分数的平均值。下面是一个例子:

James, 0.974
Harry, 0.971
Ben, 0.968
Tom, 0.965
George, 0.964

为了简单起见,我只想随机选择 2 个分数作为开始。见下文:

James, 0.974
Harry, 0.971 <---
Ben, 0.968
Tom, 0.965 <---
George, 0.964

最终结果将是(哈利和汤姆):

平均值 = 0.968

有人可以帮忙吗?我一直在使用“拆分”、“随机导入”等。但我不太擅长将它们放在一起。这很尴尬,但这是我到目前为止所得到的...

import random

stroke = random.choice(open('stroke.txt').readlines())
for x in stroke:
name, score = stroke.split(',')
score = int(score)
stroke.append((name, score))
print(stroke)

最佳答案

试试这个(代码解释):

import random

# read the file in lines
with open('file.txt','r') as f:
lines = f.read().splitlines()

# split in ',' and get the scores as float numbers
scores = [ float(i.split(',')[1]) for i in lines]

# get two random numbers
rs = random.sample(scores, 2)

# compute the average
avg = sum(rs)/len(rs)
print avg

现在如果你想修改你的代码,你可以这样做:

import random

# pick two instead of one
stroke = random.sample(open('file.txt').readlines(),2)

scores = []
for x in stroke:
# split item of list not the list itself
name, score = x.split(',')
# store the two scores on the scores list
scores.append(float(score))

print (scores[0]+scores[1])/2

正如@MadPhysicist 在评论中提出的,不是做 (scores[0]+scores[1])/2 更通用的方法是 sum(scores)/len(分数),因为这甚至适用于不止两个分数。

关于python - 从 .txt 文件中选择随机分数并找到它们的平均值 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46354573/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com