Как распределить элементы по принципу младшего разряда?
Итак, допустим, у нас есть некий список [32, 45, 64, 76, 57, 28]. Как распределить их по 10 корзинам, по принципу младшего разряда, то есть
Корзина 1 -
Корзина 2 - 32
Корзина 3 -
Корзина 4 - 64
Корзина 5 - 45
Корзина 6 - 76
Корзина 7 - 57
Корзина 8 - 28
Корзина 9
Корзина 10
После записать их в новый список. После по той же схеме, только уже по старшему разряду. Помогите пожалуйста с этой частью. Как я понял, можно использовать очереди, но не понимаю, как реализовать
Ответы (2 шт):
Автор решения: passant
→ Ссылка
baskets=[[],[],[],[],[],[],[],[],[],[]]
arr=[32, 45, 64, 76, 57, 28, 65, 94,127, 8]
for i in arr:
baskets[i%10].append(i)
print (baskets)
Результат:
[[], [], [32], [], [64, 94], [45, 65], [76], [57, 127], [28, 8], []]
После по той же схеме, только уже по старшему разряду. - надеюсь справитесь сами.
Как я понял, можно использовать очереди, но не понимаю, как реализовать - и я не понимаю, и главное - зачем?
Автор решения: CrazyElf
→ Ссылка
Я бы вообще словарь использовал. Зачем нужны пустые корзины?
from collections import defaultdict
my_list = [32, 45, 64, 76, 57, 28, 74, 55, 22]
my_dict = defaultdict(list)
for v in my_list:
my_dict[v%10].append(v)
print(dict(my_dict))
Вывод:
{2: [32, 22], 5: [45, 55], 4: [64, 74], 6: [76], 7: [57], 8: [28]}
Ну или вот так, чтобы прям в нужном виде вывод был:
for i in range(10):
print(f'Корзина {i} - {",".join(map(str,my_dict[i]))}')
Вывод:
Корзина 0 -
Корзина 1 -
Корзина 2 - 32,22
Корзина 3 -
Корзина 4 - 64,74
Корзина 5 - 45,55
Корзина 6 - 76
Корзина 7 - 57
Корзина 8 - 28
Корзина 9 -