Я создал программу, которая принимает список пользователей в разговоре и список сообщений в этом разговоре, содержащий каждое сообщение с атрибутом имя пользователя и время .
Что я намеревался сделать, это проверить, когда есть ответ (когда msgList[i].usnername != msgList[i-1].username
), проверить, кто делает этот ответ и сколько минут это заняло, а затем сложить 1 в словарь, подсчитывающий ответы, которые потребовалисьdif
минут
def getResponseTime(userList, msgList):
thresholds = [5, 15, 30, 60, 120, "inf"]
k = dict.fromkeys(thresholds, 0)
avl = dict.fromkeys(userList, k)
for i in range(len(msgList)):
if msgList[i].username != msgList[i-1].username:
# response
dif = (msgList[i].time - msgList[i-1].time).total_seconds()/60
if dif > 0 and dif <= 5:
avl[msgList[i].username][5] += 1
elif dif > 5 and dif <= 15:
avl[msgList[i].username][15] += 1
elif dif > 15 and dif <= 30:
avl[msgList[i].username][30] += 1
elif dif > 30 and dif <= 60:
avl[msgList[i].username][60] += 1
elif dif > 60 and dif <= 120:
avl[msgList[i].username][120] += 1
else:
avl[msgList[i].username]["inf"] += 1
return avl
И я получаю такой вывод:
{'Lau': {5: 8223, 15: 1758, 30: 493, 60: 318, 120: 181, 'inf': 10081}, 'Fco': {5: 8223, 15: 1758, 30: 493, 60: 318, 120: 181, 'inf': 10081}}
Как видите, результаты одинаковы для обоих пользователей, и я не могу найти ни одной ошибки вкод, который может объяснить это.