[英]List of Lists (summing indexes but need to skip certain indexes ('None' values)
我有一个列表列表( training_list
)。 每个列表有15个索引。 我需要总结每个列表的每个索引,例如list1 row [0] + list2 row [0],依此类推。
我创建了允许我执行此功能的函数def sums_list
。 但是我遇到了一个问题,当我的代码对每个索引求和时,由于None
值,它停止在索引2中。 此值也包含在索引3和13中。
我无法替换此None
值,我需要保持原样。 我希望基本上跳过此步骤并继续进行下一个索引。
training_list = [
[22, 0.7173543689320389, None, None, 10, 0.4122977346278317,
0.10788834951456311, 0.038187702265372166, 0.8373381877022654,
0.6119741100323625, 0, 0, 38, None, ' <=50K'],
[28, 0.7173543689320389, None, None, 5, 0.4122977346278317,
0.12823624595469255, 0.3013349514563107, 0.8373381877022654,
0.6119741100323625, 0, 0, 40, None, ' <=50K'],
[30, 0.7173543689320389, None, None, 13, 0.3351132686084142,
0.09227346278317151, 0.033292880258899676, 0.8373381877022654,
0.38802588996763754, 0, 0, 40, None, ' >50K'],
[20, 0.7173543689320389, None, None, 10, 0.4122977346278317,
0.051941747572815535, 0.20230582524271845, 0.8373381877022654,
0.6119741100323625, 0, 0, 20, None, ' >50K']
]
码:
def sums_lists(list1, list2):
try:
sums_list = []
for index in range(14):
sums_list.append(list1[index]+list2[index])
except:
pass
return sums_list
def make_averages(sums_list, total_int):
try:
average_list = []
for value_int in sums_list:
average_list.append(value_int/total_int)
except:
pass
return average_list
def train_classifier(training_list):
under_50k_sums_list = [0]*14
under_50k_count = 0
over_50k_sums_list = [0]*14
over_50k_count = 0
for row in training_list:
if row[-1] == ' <=50K':
under_50k_sums_list = sums_lists(under_50k_sums_list, row[:-1])
under_50k_count += 1
else:
over_50k_sums_list = sums_lists(over_50k_sums_list, row[:-1])
over_50k_count += 1
under_50k_averages_list = make_averages(under_50k_sums_list, under_50k_count)
over_50k_averages_list = make_averages(over_50k_sums_list, over_50k_count)
classifier_list = make_averages(sums_lists(under_50k_averages_list, over_50k_averages_list),2)
return classifier_list
尝试这个:
def sums_lists(list1, list2):
zipped = zip(list1,list2)
result = []
for item in zipped[:-1]:
if None not in item:
result.append(sum(item))
return result
如果只有最后一部分可以是字符串,则可以在求和中跳过该部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.