<p>我在代码中遇到了一些被认为“工作正常”的错误,所以我也修复了它们,并在这个过程中进行了一些优化。以下是我为测试目的创建的简单示例CSV文件的结果:</p>
<pre><code>import csv
from pprint import pprint
#YOJ, QOJ, GEN = 17, 15, 3
YOJ, QOJ, GEN = 0, 1, 2 # For testing since no sample CSV provided.
results = {'males': {}, 'females': {}}
with open('1000 Records.csv') as csv_file:
for row in csv.reader(csv_file):
year_of_joining = int(row[YOJ])
quarter_of_joining = int(row[QOJ])
gender = 'males' if row[GEN] == 'M' else 'females'
if year_of_joining not in results[gender]:
results[gender][year_of_joining] = {f'Q{i + 1}': 0 for i in range(4)}
QOJ_key = f'Q{quarter_of_joining+1}' # Convert to dict key format.
results[gender][year_of_joining][QOJ_key] += 1
years = sorted(results['males'].keys() | results['females'].keys())
data = {year: {'males': results['males'][year],
'females': results['females'][year]}
for year in years}
pprint(data, sort_dicts=False)
</code></pre>
<p>样本输出:</p>
<pre><code>{1980: {'males': {'Q1': 0, 'Q2': 1, 'Q3': 1, 'Q4': 0},
'females': {'Q1': 0, 'Q2': 0, 'Q3': 1, 'Q4': 0}},
1981: {'males': {'Q1': 0, 'Q2': 0, 'Q3': 1, 'Q4': 0},
'females': {'Q1': 0, 'Q2': 0, 'Q3': 0, 'Q4': 2}}}
</code></pre>