Найти - Пользователи
Полная версия: сортировка массива
Начало » Центр помощи » сортировка массива
1
alex137
Хотелось бы понять, корректно ли сформулирована задача? (смущают входные данные)
PEHDOM
alex137
(смущают входные данные)
По условиям там должен быть словарь, а тут множество множеств. Не уверен что такая конструкция вообще сработает, скорее всего пайтон такое даже не скушает. Наверно входные данные должны быть в виде:
 {'A':5,'B':2,'C':13...}
py.user.next
alex137
смущают входные данные
Должно быть так
  
{'A': 5, 'B': 2, 'C': 13, 'D': 11, 'E': 4}
Что в задании написано, под питон точно не подходит, хотя и выглядит понятно. И под математику тоже не подходит.
В питоне фигурные скобки означают “множество”, в нём элементы не упорядочены, поэтому нет первых элементов и вторых.
В математике фигурные скобки означают множество, в нём элементы не упорядочены.
А упорядоченные элементы в кортеже. Кортеж обозначается круглыми скобками как в питоне, так и в математике.

Математическое неупорядоченное множество упорядоченных пар, где каждая пара - кортеж из двух элементов
{(A, 5), (B, 2), (C, 13), (D, 11), (E, 4)}

Питоновское множество кортежей из двух элементов (первые элементы - строки, хотя могут быть и просто переменными)
{('A', 5), ('B', 2), ('C', 13), ('D', 11), ('E', 4)}
Так тоже можно сделать
  
>>> A, B, C, D, E = '111', '222', '333', '444', '555'
>>> 
>>> data = {(A, 5), (B, 2), (C, 13), (D, 11), (E, 4)}
>>> data
{('111', 5), ('444', 11), ('222', 2), ('555', 4), ('333', 13)}
>>>
Но тут порядка нет во множестве, поэтому выводит всё в другом порядке.

Хотя в Erlang'е можно кортежи задавать через фигурные скобки, а у кортежей всегда есть порядок
1> Tup1 = {{'A', 5}, {'B', 2}, {'C', 13}, {'D', 11}, {'E', 4}}.
{{'A',5},{'B',2},{'C',13},{'D',11},{'E',4}}
2>
2> Tup2 = {{a, 5}, {b, 2}, {c, 13}, {d, 11}, {e, 4}}.
{{a,5},{b,2},{c,13},{d,11},{e,4}}
3>
3> {Tup1, Tup2}.
{{{'A',5},{'B',2},{'C',13},{'D',11},{'E',4}},
{{a,5},{b,2},{c,13},{d,11},{e,4}}}
4>
alex137
Если исходить из того, что словарь неправильно определен и должно быть {'A': 5, ‘B’: 2, ‘C’: 13, ‘D’: 11, ‘E’: 4}. То как выполнить вторую часть задачи про кэширование?
PEHDOM
alex137
То как выполнить вторую часть задачи про кэширование?
кеширование - хранение данных(обычно частоиспользуэмых) в памяти(кеше). Тоесть вы должны гдето внутри класса хранить рейтинг последнего словаря, с указанием собственно какому словарю принадлежит этот рейтинг(или както вести нумерацию чтобы понимать последний это словарь или нет). А при запросе рейтинга, оно должно смотреть если рейтинг принадледит этому словарю возвращать его из кеша, иначе вычислять и возвращать вычисленое значени.
Как вы это должны реалзовать ХЗ, так как задача чисто учебная, там могут быть ограничения по использованию тех или иных модулей, или вы могли еще не проходить нужную тему.
rumactep
можно с нятяжкой сказать, что сойдет.
в класс помещают словарь, который сохраняется в классе, при этом просматривается каждый элемент и считается среднее, которое и хранится в классе и выдается безе последующего пересчета. При помещении в класс нового словаря высчитвввывется среднее, соотвествующее новому словарю.
Rodegast
Не сойдёт! Классы для этих целей использовать не нужно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB