我有一个代码,如果它们有匹配的索引 [0],我需要遍历行并总结索引 x。创建这个的最佳解决方案是什么?我想我可以有 defaultdict 并且如果 index[0] 中有匹配项,它会添加这些值。有没有一种方法可以让我逐行读取它,并让 index[0] 始终在临时内存中,如果它与下一个 index[0] 匹配,它会进行总结吗?
这是我到目前为止所拥有的:
with open("test.txt") as f:
dic = defaultdict(list)
for line in f:
spl =line.split("\t")
if("Fam" in line):
dic[spl[0]].append(spl[1:])
a = float(spl[5])
b = float(spl[6])
sum = a * b
output = str(sum)
this = line.strip() + "\t"+output
if("TK" in line): #I would like to start sum up after this. Read all lines that include "TK", check index[0] for matches, if match sum up.
编辑。我这样做是为了排序列表。
提前致谢
编辑2。由于人们在理解我时遇到问题,也许一些输出会有所帮助。当前可变this
打印:
Fam_c1_1 F Extractions 02-0419 02-419TK 500 400 200000.0
Fam_c1_1 F Extractions 5107 5107TK 1475 447.5 660062.5
Fam_c10_1 F Extractions 5132 5132TK 1555 547.6 851518.0
Fam_c100_1 M Extractions 5843 5843TK 2605 398.6 1038353.0
Fam_c1000_1 F Extractions 9913 9913TK 1900 398 756200.0
Fam_c1001_1 F Extractions 9512 9512TK 1050 20 21000.0
所以在这种情况下,我希望我的代码通过列表,始终在内存中保留列表的第一个值。如果它匹配下一行第一个值,它将执行 x。