【发布时间】:2017-10-21 23:31:42
【问题描述】:
注意:我编辑了问题!
我在 Python 中的迭代遇到了麻烦,尤其是当我想对某个数值进行汇总时。以下是有关我面临的问题的更多信息:
我有一个如下所示的元组列表:
[(1, 0.5, 'min'),
(2, 3, 'NA'),
(3, 6, 'NA'),
(4, 40, 'NA'),
(5, 90, 'NA'),
(6, 130.8, 'max'),
(7, 129, 'NA'),
(8, 111, 'NA'),
(9, 8, 'NA'),
(10, 9, 'NA'),
(11, 0.01, 'min'),
(12, 9, 'NA'),
(13, 40, 'NA'),
(14, 90, 'NA'),
(15, 130.1, 'max'),
(16, 112, 'NA'),
(17, 108, 'NA'),
(18, 90, 'NA'),
(19, 77, 'NA'),
(20, 68, 'NA'),
(21, 0.9, 'min'),
(22, 8, 'NA'),
(23, 40, 'NA'),
(24, 90, 'NA'),
(25, 92, 'NA'),
(26, 130.4, 'max')]
我想将导致“max”的每个值和导致“min”的每个值相加,并将这些结果附加到两个单独的列表中。
例如,输出应该是:
min_sums = [1+2+3+4+5,11+12+13+14, 21+22+23+24+15]
max_sums = [6+7+8+9+10, 15+16+17+18+19+20, 26]
我还想跟踪我实际总结的值并将其作为输出:
min_sums_lst = [[1,2,3,4,5], [11,12,13,14],[21,22,23,24,15]]
max_sums_lst = [[6,7,8,9,10], [15,16,17,18,19,20], [26]]
我想我可以使用索引值,但对 Python 来说还是很陌生,并且不完全确定如何继续。我正在学习生物学,但我相信学习 CS 会对我的工作有所帮助。
max_list = []
min_list = []
flag = ''
min_index = 0
max_index = float('inf');
if flag == 'h':
max_list.append(item)
elif flag == 'c':
min_list.append(item)
for i, item in enumerate(minmax_list):
print(i, item)
print("max_index: ", max_index)
print("min_index: ", min_index)
if item[2] == 'min':
min_index = i
max_list('h', item[0])
elif item[2] == 'NA' and (i < max_index):
max_list('h', item[0])
elif item[2] == 'max':
max_index = i
max_list('c', item[0])
elif item[2] == 'NA' and (i > min_index):
min_list('c', item[0])
我对 Python 很陌生 - 任何帮助都将不胜感激。我只是尝试根据上面输出中所示的最小值和最大值在每个元组中添加第一项。
【问题讨论】:
-
我仍然在如何跟踪我实际总结的值方面遇到问题,所以如果有人能补充一下如何获得 min_sums_lst 和 max_sums_lst,那将有很大帮助!
标签: python list tuples intervals object-slicing