我有一个文件,名称,时间段,日期
John, 10, day1
Smith,11,day1
Doe,10, day1
Isla, 12,day3
john,10,day4
john, 20,day4
我想用一个时隙里看到某人的时间建立一个“出勤表”
Table[10] = [John,2],[Doe,1]
Table[11] = [smith,1]
Table[12] = [Isla,1]
Table[20] = [John,1]
所以我有一个大小为24的数组,其中包含或不包含唯一名称和出现的列表 我是python的新手,如果可以帮助我,我也不知道如何构建这种数组?
答案 0 :(得分:1)
这将为您完成工作:
from collections import defaultdict
table = [defaultdict(int) for _ in range(24)]
with open('data.txt', 'r') as f:
for line in f.readlines():
name, hour, _ = line.split(',')
name = name.strip().lower()
hour = int(hour.strip())
table[hour][name]+=1
for hour, entry in enumerate(table):
if not entry:
continue
print("Table[{hour}] = {entries}".format(
hour = hour,
entries = str(','.join(["[{},{}]".format(name,occ) for name,occ in entry.items()]))
))
您的示例的输出将是:
Table[10] = [john,2],[doe,1]
Table[11] = [smith,1]
Table[12] = [isla,1]
Table[20] = [john,1]
让我知道您是否需要有关代码的更多说明。