【发布时间】:2020-08-12 18:09:17
【问题描述】:
我的程序需要搜索包含月份数字和值的列表。 (一月是 1,二月是 2 等等......)。 如果它找到月份整数,我想将其对应的值附加到 avg_tuple 数组中。如果它没有找到月份整数,我希望它在 output_tuple 数组中附加“N/A”以进行报告。是否可以在不使用以下内容的情况下搜索我的列表: {对于我在我的列表中:} 方法?
例如,我的程序的目的是取一月份所有值的平均值。然后举报。然后取二月和一月的平均值并报告。然后是三月、二月和一月(依此类推,随着月份的继续......)。如果一个月没有此列表的值,我希望它报告 N/A。我试过 { if x in my_list } 方法没有成功。
这是我的代码:
my_list = [(2, 181), (2, 183), (3, 376), (4, 205)]
input tuple = my_list
#Function to calculate and report back the average duration for each month
def average_duration(input_tuple):
output_tuple = []
average_tuple = []
for number in range(1,13):
for i in input_tuple:
if i[1] == number:
average_tuple.append(i[3])
if len(average_tuple)==0:
output_tuple.append("N/A")
pass
else:
output_tuple.append((sum(average_tuple))/len(average_tuple))
return output_tuple
这是我当前的输出。每个值都是针对每个月的。 (我使用 OpenPyxl 在电子表格中报告它们):
my_list N/A 182 246.6666667 236.25 236.25 236.25 236.25 236.25 236.25 236.25 236.25 236.25
这是我的预期输出:
my_list N/A, 182, 246.6666667, 236.25, N/A, N/A, N/A, N/A, N/A, N/A, N/A, N/A
【问题讨论】:
-
i的索引已更改(您使用的是 1 和 3,而不是 0 和 1)。您的代码现在为我打印所有N/A?
标签: python arrays for-loop tuples iteration