<p>对于<code>readings</code>变量,您只需要读取每一行。获得平均读数的一种方法是跟踪读数的总和和计数(分别为<code>sum_readings</code>和<code>count_readings</code>),然后在for循环之后,可以通过将总和除以计数来获得平均值。您可以通过使用读取最小值(我假设为0)初始化<code>max_readings</code>变量来获得最大值,然后在当前读取大于<code>max_readings</code>(<code>max_readings < readings</code>)时更新变量</p>
<pre><code>import csv
OPTIONS = []
OPTIONS_READINGS = {}
with open('sensor_data.csv', 'rb') as f:
reader = csv.reader(f, delimiter = ',')
for row in reader:
if row[0] not in OPTIONS:
OPTIONS.append(row[0])
OPTIONS_READINGS[row[0]] = []
sensor_name = row[0]
datastamp = row[1]
readings = float(row[2])
print(OPTIONS)
OPTIONS_READINGS[row[0]].append(readings)
for option in OPTIONS_READINGS:
print(option)
readings = OPTIONS_READINGS[option]
print('Max readings:', max(readings))
print('Average readings:', sum(readings) / len(readings))
</code></pre>
<p>编辑:对不起,我看错了问题。如果您想得到每个唯一选项的最大值和平均值,有一种更直接的方法,就是使用一个额外的字典类型变量<code>OPTIONS_READINGS</code>,它的键是选项名,值是读数列表。只需分别使用表达式<code>max(OPTIONS_READINGS[option])</code>和<code>sum(OPTIONS_READINGS[option]) / len(OPTIONS_READINGS[option])</code>,就可以找到选项的最大和平均读数。你知道吗</p>