


Python. Как сделать так чтобы не было пробелов?
Представьте, что вы пришли домой и решили побаловать себя любимым фруктовым миксом. А тут вдруг выясняется, то ваш любимый дуриан закончился. Набираете в поисковике ближайшие продуктовые магазины и получаете словарь отдел: список товаров для каждого из них. Осталось найти, в каком из них продают любимый фрукт!
Напишите функцию search_fruit(shops, fruit), которая принимает аргументы — словарь магазинов (ключ: название, значение: словарь отделов (ключ: название отдела, значение: список фруктов)) и любимый фрукт (без учёта регистра), а возвращает кортеж: (название магазина, название отдела), в котором он есть, или (None, None), если его нигде не нашлось.
Пример 1
ВводВывод
shops = {'Шестёрочка': {'Консервы': ['Ананасы кусочками', 'Ананасы колечками'], 'Сухофрукты': ['Тропические ананасы', 'Дуриан вяленый'], 'Фрукты': ['Бананы', 'Манго']}, 'Микси': {'Овощи-фрукты': ['Яблоки', 'Груши', 'Личи']}}
fruit = "Дуриан"
print(*search_fruit(shops, fruit))
Шестёрочка Сухофрукты
Пример 2
ВводВывод
shops = {'Шестёрочка': {'Консервы': ['Ананасы кусочками', 'Ананасы колечками'], 'Сухофрукты': ['Тропические ананасы', 'Дуриан вяленый'], 'Фрукты': ['Бананы', 'Манго']}, 'Микси': {'Овощи-фрукты': ['Яблоки', 'Груши', 'Личи']}}
fruit = "Личи"
print(*search_fruit(shops, fruit))
Мой код:
def search_fruit(shops, fruit):
n1 = -1
n2 = -1
n3 = -1
a = dict()
b = dict()
for i in shops:
n1 += 1
n2 = -1
for g in shops[i]:
n2 += 1
n3 = -1
for t in range(len(shops[i][g])):
n3 += 1
if fruit in shops[i][g][t]:
a1 = list(shops.keys())
b1 = list(shops[i].keys())
for k1 in range(len(a1)):
a[k1] = a1[k1]
for k2 in range(len(b1)):
b[k2] = b1[k2]
c = ''
for m in a[n1]:
if str(m) != ' ':
c += str(m)
c += ' '
for m in b[n2]:
if str(m) != ' ':
c += str(m)
return c
Почему в выводе появляются пробелы и как это исправить?
'Ш е с т ё р о ч к а С у х о ф р у к т ы'
def search_fruit(shops, fruit):
for skey,svalue in shops.items():
for dkey,dvalue in svalue.items():
for _fruit in dvalue:
if(_fruit.find(fruit,0,len(_fruit)) > -1):
return skey,dkey
return None,None
Не то чтобы твой код вообще работает, отсутствует табуляция