def fill_list(m1, m2, amount, l):
from random
import randint
for i
in range(amount):
l.append(randint(m1, m2))
def analysis(your_list, your_dict):
for i
in your_list:
if i
in your_dict:
your_dict[i] += 1
else:
your_dict[i] = 1
lst = []
dct = {}
mn = int(input('Минимум: '))
mx = int(input('Максимум: '))
qty = int(input('Количество элементов: '))
fill_list(mn, mx, qty, lst)
analysis(lst, dct)
for item in sorted(dct):
print("'%d':%d" % (item, dct[item]))
Пример выполнения:
Минимум: 100
Максимум: 104
Количество элементов: 20
'100':4
'101':7
'102':2
'103':4
'104':3
Выполнить циклический сдвиг в списке целых чисел на указанное число шагов. Сдвиг также должен быть кольцевым, то есть элемент, вышедший за пределы списка, должен появляться с другого его конца.
Для решения этой задачи можно воспользоваться следующими методами списка:
append() - добавляет элемент в конец списка,
insert() - вставляет элемент по указанному индексу,
pop() - извлекает элемент с конца списка или, если был передан индекс, по индексу.
Пусть функция shift() в качестве аргументов принимает список и количество шагов сдвига. Если шаги представлены положительным числом, то сдвиг выполняется вправо, то есть надо извлечь последний элемент и добавить его в начало.
Если шаги - отрицательное число, то будем выполнять сдвиг справа налево, то есть надо извлечь первый элемент и добавить его в конец.
def shift(lst, steps):
if steps < 0:
steps = abs(steps)
for i
in range(steps):
lst.append(lst.pop(0))
else:
for i
in range(steps):
lst.insert(0, lst.pop())
nums = [4, 5, 6, 7, 8, 9, 0]
print(nums)
shift(nums, -2)
print(nums)
shift(nums, 3)
print(nums)
Пример выполнения:
[4, 5, 6, 7, 8, 9, 0]
[6, 7, 8, 9, 0, 4, 5]
[0, 4, 5, 6, 7, 8, 9]