Abhishek_K:
私はリストしましたa = [(1,3),(3,7),(1,10),(3,5),......]
ので、上を。すなわち(ENTRY_TIME、exit_time)。
各タプルの第一の要素は、従業員のエントリ時間であり、第二の要素は、終了時間です。一日のどの時間にオフィス内の最大の人々があったような時間を見つける必要があります。
例えば出力:
{1'00: 10, 2'00: 20, 3'00: 15}
だから、最終的な出力は、カウント20で2'00する必要があります。
エズレル:
平らにしてリスト内包使用range
し、使用collections.Counter
し、最後の抽出最大:
a = [(1, 3), (3, 7), (1, 10), (3, 5)]
from collections import Counter
d = Counter([f'{y}:00' for s, e in a for y in range(s, e + 1)])
print(d)
Counter({'3:00': 4, '4:00': 3, '5:00': 3, '1:00': 2, '2:00': 2,
'6:00': 2, '7:00': 2, '8:00': 1, '9:00': 1, '10:00': 1})
maximum = max(d, key=d.get)
print(maximum, d[maximum])
3:00 4
タプルの最後の値がカウントされていない場合:
d = Counter([f'{y}:00' for s, e in a for y in range(s, e)])
print (d)
Counter({'3:00': 3, '4:00': 3, '1:00': 2, '2:00': 2,
'5:00': 2, '6:00': 2, '7:00': 1, '8:00': 1, '9:00': 1})
maximum = max(d, key=d.get)
print(maximum, d[maximum])
3:00 3