В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
strimersakarinа
strimersakarinа
07.08.2021 19:25 •  Информатика

Сделайте 1 задание

Нужно протабулировать функцию


Сделайте 1 задание Нужно протабулировать функцию

Показать ответ
Ответ:
elkilk
elkilk
28.01.2022 01:12

n = int(input()) # получаем кол-во продуктов и записываем в n

a = {} # библиотека для цен

c = {} # библиотека для кол-во продукта

l = [] # массив для всех проданных продуктов

for i1 in range(n): # цикл для заполнения всех массивов

   b = [] # массив b для отделения цены о названия продукта

   b.append(input().split()) # записываем продукт и его цену в массив b

   k = int(b[0][len(b[0])-1]) # записываем в k цену продукта

   v = ''

   for i in range(len(b[0])-1): # при цикла объединяем название в                одну строчку и записываем в v

       v = v + str(b[0][i]) + ' '

   l.append(v) # добавляем название в массив l

   a[v] = k # добавляем цену и продукт в библиотеку a

   c[v] = 0 # добавляем продукт в библиотеку b

for i in range(len(l)): # записываем при цикла кол-во каждого продукта

   c[l[i]] = c[l[i]]+1

print(len(c)) # выводим кол-во продуктов, которые были проданы

for i in a: # при цикла выводим продукт и сколько за него в итоге заплатили

   print(str(i)+str(a[i]*c[i]))

Объяснение

0,0(0 оценок)
Ответ:
Новичок345
Новичок345
20.09.2021 05:53

если на входе имеем строку, то привести к листу её можно с метода split(sep), где sep - символ, который программа считает за разделитель

input_list = input().split(',')

В нашей задаче нужно найти минимум, и сложить все индексы, под которыми этот минимум встречается. Для этого нужно привести последовательность к типу int. Можем воспользоваться либо функцией map, либо очень сильным питоньим колдунством (генераторы списков). Но всё таки воспользуемся более традиционным

input_list = list(map(int, input_list))

теперь все элементы нашего списка имеют тип int. Вытащим оттуда минимум:

our_min = min(input_list)

заведём переменную, куда будем складывать сумму индексов:

index_sum = 0

Самым очевидным для школьника сложить все индексы минимума будет перебрать весь массив и сравнивать элементы с нашим минимумом. Что бы не городить огороды, воспользуемся функцией enumerate, которая для нашего листа вернёт лист, состоящий из кортежей (индекс, элемент_под_этим_индексом)

for index, item in enumerate(input_list):

   if item == our_min: index_sum += index

что произошло? Всё просто - если выбранный элемент является минимумом, то мы увеличиваем нашу переменную index_sum на значение индекса очередного встреченного минимума. Осталось дело за малым - выведем сумму индексов на экран

print(index_sum)

P.S - Из выделенных курсивом строчек кода можно склеить программу) Но на всякий случай, ниже всё же приложен скриншот.


Выведите сумму индексов минимального числа последовательности Входные данные :(строка)35,43,30,18,5,
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота