Добрый день, уважаемые форумчане!
Прошу помочь решить задачу, никак сообразить не могу. Суть задачи в следующем:
Определить самый дешевый продукт и в каком магазине он продается. Название продукта следует записать в первой строке, а название магазина - во второй. Если несколько товаров стоят одинаково, то выведите то название, которое раньше в алфавитном порядке. Если этот товар продается в нескольких магазинах по одной минимальной цене, то выведите минимальное в алфавитном порядке название магазина.
Задачу нужно решить без использования специальных библиотек для работы с табличными данными.
Сам файл в csv формате и разделителем выступает точка с запятой.
Сейчас на таком этапе:
Знаю, что решаю её не правильно, но пока сообразить не могу как сравнить все списки с ценами и вытащить минимальные вместе с магазином к товару.
Думал на счет сравнения всех списков и вытягивания только минимальных, но тоже пока не получается(
win 10
python 3.8
Прошу помочь решить задачу, никак сообразить не могу. Суть задачи в следующем:
Определить самый дешевый продукт и в каком магазине он продается. Название продукта следует записать в первой строке, а название магазина - во второй. Если несколько товаров стоят одинаково, то выведите то название, которое раньше в алфавитном порядке. Если этот товар продается в нескольких магазинах по одной минимальной цене, то выведите минимальное в алфавитном порядке название магазина.
Задачу нужно решить без использования специальных библиотек для работы с табличными данными.
Сам файл в csv формате и разделителем выступает точка с запятой.
Сейчас на таком этапе:
Python:
with open(“C:\\Users\\Windows 10\\Desktop\\problem5.csv”, ‘r’, encoding='utf8') as fh:
text = fh.read()
#def getMinIndex(seq):
# minIndex = 0
# for i, x in enumerate(seq):
# if x < seq:
# minIndex = i
# return minIndex
#for i,j in shops_and_prices:
# result =
def strings_to_num(price):
return
data = list(map(lambda s: s.split(';'), text.splitlines()))
product = data
shops_and_prices = [(row, strings_to_num(row)) for row in data]
best_row = min(shops_and_prices, key=lambda shop_and_price: shop_and_price)
best_shop, best_prices = best_row
for products in zip(product, best_prices):
print('{} {}'.format(*products) + ‘ ’ + best_shop)
Знаю, что решаю её не правильно, но пока сообразить не могу как сравнить все списки с ценами и вытащить минимальные вместе с магазином к товару.
Думал на счет сравнения всех списков и вытягивания только минимальных, но тоже пока не получается(
win 10
python 3.8
Вложения
Последнее редактирование: