1
我有文件的集合(有点像CSV,但没有逗号)的数据排列如下所示:枚举列表中的列表元素的
RMS ResNum Scores Rank
30 1 44 5
12 1 99 2
2 1 60 1
1.5 1 63 3
12 2 91 4
2 2 77 3
我想写枚举脚本对我来说,并给出一个整数作为输出。我希望它能够计算出我们得到的RMS值低于3并且得分高于51的次数。只有满足这两个条件,它才会使我们的计数加1。
然而,棘手的部分是,对于任何给定的“ResNum”,它不能多次添加1次。换言之,我想通过ResNum对数据进行分组,然后根据是否符合这两个条件来决定1或0。
所以现在它会给出一个输出为3,而我希望它显示2代替。由于ResNum 1在此计数两次(两行符合标准)。
import glob
file_list = glob.glob("*")
file_list = sorted(file_list)
for input_file in file_list:
masterlist = []
opened_file = open(input_file,'r')
count = 0
for line in opened_file:
data = line.split()
templist = []
templist.append(float(data[0])) #RMS
templist.append(int(data[1])) #ResNum
templist.append(float(data[2])) #Scores
templist.append(float(data[3])) #Rank
masterlist.append(templist)
于是,就有了需要修改的部分(我认为)
for placement in masterlist:
if placement[0] <3 and placement[2] >51.0:
count += 1
print input_file
print count
count = 0
在您的示例数据中,3行符合条件。 RMS 2,1.5和2(最后一个) –