<p>问题:
在.txt文件中找到以“1001”结尾的单位代码,如果有人得到低于50分的分数,则计算此单位。如果是,则计算。如果否,则值为0</p>
<p>我的代码:</p>
<pre><code>skipped_header = True
counters_unit_code = {}
with open("inp.txt") as csv_file:
for line in csv_file:
if skipped_header:
skipped_header = False
continue
record = line.rstrip().split(':')
unit_code = record[2].endswith('1001')
min_mark = int(record[4])
if unit_code not in counters_unit_code:
counters_unit_code[unit_code]=0
if min_mark < 50:
counters_unit_code[unit_code] += 1
for unit_code in counters_unit_code:
print(str(unit_code),counters_unit_code[unit_code])
</code></pre>
<p>我的输出:</p>
<pre><code>False 1
True 3
</code></pre>
<p>预期产量:</p>
<pre><code>engl1001 3
math1001 0
</code></pre>
<p>txt文件(inp.txt):</p>
<pre><code>Name:unikey:unitcode:year:mark
Joe Smith:jsmi3031:chem1101:2016:40
Oleg Catem:ocat3031:chem1101:2016:79
Joe Smith:jsmi3031:engl1001:2015:0
Joe Smith:jsmi3031:engl1001:2016:45
Tim Gold:tgol2145:engl1001:2016:46
Paula Dong:pdon1234:engl1001:2016:91
Joe Smith:jsmi3031:engl1001:2017:54
Oleg Catem:ocat3031:engl1001:2017:87
Oleg Catem:ocat3031:math1001:2016:95
Joe Smith:jsmi3031:math1001:2016:59
Paula Dong:pdon1234:math1001:2016:99
</code></pre>