Python 中列表的平均值

问题描述 投票:0回答:1

我有一个文件“list1”,其中包含姓名、注释1、注释2,如下所示:

DUPOND, John, 12, 10
JAMES, Fil, 8, 10
KYLE, Gregor, 17, 7

我想编写一个Python脚本来在另一个名为“list2”的文件中显示“list1”的内容 但已排序并使用 2 个注释的平均值,格式为:姓氏、姓名、注释 1、注释 2、平均值 像这样:

John, DUPOND, 12, 14, 13
JAMES, Fil, , 8, 10, 9
KYLE, Gregor, 17, 7, 12

您有什么建议吗?

我已经测试过这段代码,它只在方括号中显示我的文件的内容,我怎样才能取2个值的平均值并将其放入另一个文件中?

import sys
import csv

with open(sys.argv[1], newline='') as f:
    reader = csv.reader(f)
    for row in reader:
     statistics.mean(xs)
        print(row)
python csv average
1个回答
0
投票

这里涉及的步骤是:

  1. 读取一行,分别解压名称组件和值
  2. 计算值的平均值
  3. 以相反的顺序写出名称组成部分、值和平均值
import sys
import csv
import statistics

with open(sys.argv[1], newline='') as inf, open(sys.argv[2], 'w', newline='') as outf:
    writer = csv.writer(outf)
    for name, surname, *values in csv.reader(inf):  # Read name first, surname second, then collect values
        writer.writerow([surname, name, *values, statistics.mean(map(int, values))])  # Write surname first, then name, then values, then average

即使值的数量不是两个,这也有效,因为解包通过将所有额外值收集到

values
list
中来处理所有额外值,无论有多少。

© www.soinside.com 2019 - 2024. All rights reserved.