Skip to content
Open
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
0f1e138
basic_exercises part 1
Feb 20, 2023
1c8d7d0
basic_exercises fixed
Feb 22, 2023
88169bb
basic_exercises fixed_1
Feb 22, 2023
190192d
add string_challenges.py, for_challenges.py fixed
Feb 23, 2023
85ef5fb
add for_dict_challenges.py
Feb 25, 2023
c27c417
for_challenges.py, string_challenges.py fixed
Feb 25, 2023
dd92056
add task company.py solution
Feb 26, 2023
c63c919
add task company.py solution
Feb 26, 2023
b3ba249
company.py fixed, add additional tasks
Feb 27, 2023
867a711
fixed compane.py
Feb 28, 2023
991276a
fixed company.py, for_dict_challenges.py +last task
Mar 1, 2023
7ff8a37
fixed company.py
Mar 3, 2023
1a2b535
fixed for_dict_challenges.py, except for the 5 task
Mar 3, 2023
d7696ae
fixed company.py, for_dict_challenges.py
Mar 4, 2023
1a9d3bc
fixed for_challenges.py, string_challenges.py
Mar 4, 2023
2c3c060
correcting remarks code review company.py, for_dict_challenges.py
Mar 5, 2023
0563d48
add task 13, 14 company
Mar 6, 2023
f4da86c
correcting task 13, add functions
Mar 9, 2023
9b7131c
fixed 13, 14 tasks
Mar 11, 2023
0b79ba6
Исправил замечания, добавил решения задач 16,17,18
Mar 18, 2023
7598ae9
Решение 1 задачи в for_dict_challenges_bonus.py
Mar 18, 2023
fb5366d
исправление замечаний review
Mar 19, 2023
191c915
исправление замечаний, немного поменял алгоритм
Mar 19, 2023
3cc58b3
fixing the mistakes according to the comments
Mar 21, 2023
3aa9ea8
Решение 2 задачи \for_dict_challenges_bonus.py
Mar 27, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 36 additions & 2 deletions for_dict_challenges_bonus.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,43 @@ def is_user_with_max_messages(messages):

# 2. Вывести айди пользователя, на сообщения которого больше всего отвечали.
def is_user_with_max_reply_messages(messages):
pass

# 1. Формируем список id сообщений на которые отвечали -> уникальные
messages_id_that_were_replied = []
for message in messages:
if message["reply_for"] != [] and message["reply_for"] is not None:
messages_id_that_were_replied.append(message["reply_for"])

unique_messages_id_that_were_replied = set(messages_id_that_were_replied)

# 2. Формируем список словарей: id сообщения, кол-во сообщений-ответов на это сообщение
messages_id_that_were_replied_with_sum_of_answers = []

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут было бы логично сделать не список из словарей, а просто словарь. Айди сообщения: количество ответов.

for message_id in unique_messages_id_that_were_replied:
messages_id_that_were_replied_with_sum_of_answers.append({
"message_id": message_id,
"number_of_answers": messages_id_that_were_replied.count(message_id),
})
print(messages_id_that_were_replied_with_sum_of_answers)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Эти принты хороши для дебага, но из финальной версии их надо удалять.


# 3. Выводим id сообщения с максимальным количеством ответов на него
message_id_with_max_sum_of_answers = max(messages_id_that_were_replied_with_sum_of_answers, key=lambda x: x[
"number_of_answers"])
print(f'айди сообщения sum = {message_id_with_max_sum_of_answers}')

# 4. Кладем в пременную id сообщения с максимальным количеством ответов на него
message_id_with_max_sum_of_answers_var = message_id_with_max_sum_of_answers['message_id']
print(f'айди сообщения = {message_id_with_max_sum_of_answers_var}')

# 5. Формируем словарь из id сообщений и id пользователей-отправителей этих сообщений
messages_id_and_users_id_sent_by = {}
for message in messages:
messages_id_and_users_id_sent_by[message["id"]] = message["sent_by"]
print(f'Словарь = {messages_id_and_users_id_sent_by}')

# 6. Выводим id пользователя на сообщения которого больше всего отвечали

return messages_id_and_users_id_sent_by[message_id_with_max_sum_of_answers_var]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут получается, что ты выводишь айди пользователя, который написал сообщение, на которое ответило больше всего пользователей. Это неправильно.

Нам нужно найти пользователя, сообщения которого больше всего просматривали в сумме. То есть он мог написать оч много сообщений с небольшим количеством ответов. Это не обязательно автор самого отвечаемого сообщения.


if __name__ == "__main__":
messages = generate_chat_history()
print(is_user_with_max_messages(messages))
print(is_user_with_max_reply_messages(messages))