Добрый день. Есть следующая задача:
Есть два списка, с повторяющимеся элементами
Мне нужно сначала сделать первый список упорядоченым по кол-ву элементов по уменьшению и добавить второй, так же отсортированный список.
DEBUG: User suggestions for user_id=1, context=I like to test it: ['one', 'one', 'one', 'four']
DEBUG: Global suggestions for , context=[('two',), ('two',), ('three',)]
В данном случае - получить
['one', 'four', 'two', 'three']
def suggest():
suggestions_user = model.suggest_next_words(user_id, context)
suggestions_global = model.get_global_suggestions(context)
user_counts = Counter(suggestions_user)
global_counts = Counter(suggestions_global)
sorted_user_suggestions = sorted(user_counts.items(), key=lambda x: (-x[1], x[0]))
sorted_global_suggestions = sorted(global_counts.items(), key=lambda x: (-x[1], x[0]))
combined_suggestions_set = set()
combined_suggestions = []
for item in sorted_user_suggestions + sorted_global_suggestions:
suggestion = item[0]
if suggestion not in combined_suggestions_set:
combined_suggestions_set.add(suggestion)
combined_suggestions.append(suggestion)
response = {
'suggestions_user': [item[0] for item in sorted_user_suggestions],
'suggestions_global': [item[0] for item in sorted_global_suggestions],
'combined_suggestions': combined_suggestions
}
return jsonify(response)
{"combined_suggestions":["three","one","four","two"],"suggestions_global":["three","two"],"suggestions_user":["three","one","four"]}
Мне выдает
combined_suggestions":["four","one","three","two"],
Добавлял реверсы везде, либо переворачивает весь список, либо ничего не происходит