建立和访问数组列表

时间:2019-08-14 20:34:07

标签: python-3.x

我有一个文件,名称,时间段,日期

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的新手,如果可以帮助我,我也不知道如何构建这种数组?

1 个答案:

答案 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]

让我知道您是否需要有关代码的更多说明。