Подскажите, пожалуйста

ks1891

Новичок
Пользователь
Янв 15, 2021
41
0
6
Здравствуйте!
Написал функцию, все работает, но курс не принимает, так как она не проходит скрытые тесты(не со всеми возможными значениями работает). Скажите, пожалуйста, какую ошибку я мог допустить1613482703488.png
Python:
list = ['молоко; молочные продукты', 'помидоры; овощи', 'огурцы; овощи', 'творог; молочные продукты', 'сыр; молочные продукты']

def group_goods(list):
    categories = []

    for item in list:
        categories.append(item.split("; ")[1])

    dictionary = {}
    for category in set(categories):
        dictionary[category] = []

    for i in range(len(set(categories))):
        for item in list:
            if item.split("; ")[1] in categories[i]:
                dictionary[categories[i]].append(item.split("; ")[0])
    return dictionary
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 625
469
83
попробуйте так
Python:
def group_goods(l):
    categories = []

    for item in l:
        categories.append(item.split(";")[1])

    dictionary = {}
    for category in set(categories):
        dictionary[category] = []

    for i in l:
        temp = i.split(';')
        for key in dictionary.keys():
            if temp[1] == key:
                dictionary[key].append(temp[0])

    return dictionary
 
  • Мне нравится
Реакции: ks1891

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 625
469
83
так у вас все работает вроде...
и не нужно называть переменные именами, которые принадлежат встроенным функциям питона (в вашем случае list)...
может из за этого вы и не проходите тест...
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 625
469
83
а нет, не работает, если добавить еще категорию то плохо все...
 

ks1891

Новичок
Пользователь
Янв 15, 2021
41
0
6
а нет, не работает, если добавить еще категорию то плохо все...
странно. я же в цикле записываю категории в словарь. Почему так может происходить?
 

ks1891

Новичок
Пользователь
Янв 15, 2021
41
0
6
попробуйте так
Python:
def group_goods(l):
    categories = []

    for item in l:
        categories.append(item.split(";")[1])

    dictionary = {}
    for category in set(categories):
        dictionary[category] = []

    for i in l:
        temp = i.split(';')
        for key in dictionary.keys():
            if temp[1] == key:
                dictionary[key].append(temp[0])

    return dictionary
да, заработало) спасибо!
 

Форум IT Специалистов