Втора задача

  1. @Кирил , тук искам да вмъкна само , че при този тест:

    def test_capitals(self):
        input = {
            "Israel": "Jerusalem",
            "Austria": "Vienna",
            "Palestine": "Jerusalem",
            "Sweden": "Stockholm"
        }
        output = {
            'Jerusalem': 'Israel',
            'Stockholm': 'Sweden',
            'Vienna': 'Austria'
        }
        self.assertEqual(output, s.reversed_dict(input)) 
    

    Нарушава условието зададено от вас , а то е именно

    "Ако в оригиналния речник има две равни стойности, сте свободни в резултата да игнорирате всички освен една."

    Ако искаме да работи теста както трябва в този конкретен пример мисля , че трябва да изглежда нещо подобно:

    def test_capitals(self):
        input = {
            "Israel": "Jerusalem",
            "Austria": "Vienna",
            "Palestine": "Jerusalem",
            "Sweden": "Stockholm"
        }
        output = {
            'Jerusalem': 'Israel',
            'Stockholm': 'Sweden',
            'Vienna': 'Austria'
        }
        output2 = {
            'Jerusalem': 'Palestine',
            'Stockholm': 'Sweden',
            'Vienna': 'Austria'
        }
    
        self.assertTrue(s.reversed_dict(input) in [output, output2]) 
    

    П.С: Не съм направил pull request , защото не знам как се прави , споменахте го на лекцията и очаквахте всички да знаем как се прави явно(това може би е предложение за "хитринка")(to all the haters - да , знам , че мога да прочета в интернет и да видя как става, казвам го заради feedback-a , когато намеря свободно време ще се науча.Thank you, less hate more love.Peace!

  2. Прав си, оправих теста и пушнах.

    П.С: Не съм направил pull request , защото не знам как се прави , споменахте го на лекцията и очаквахте всички да знаем как се прави явно(това може би е предложение за "хитринка")(to all the haters - да , знам , че мога да прочета в интернет и да видя как става, казвам го заради feedback-a , когато намеря свободно време ще се науча.Thank you, less hate more love.Peace!

    Не се притеснявай за това. Не очакваме да знаете как се използва git, след някоя и друга лекция ще обърнем внимание на това :)

  3. Има още две правописни грешки в тестовете мисля , че :

    def test_with_three_levels_of_nesting(self):
        self.assertEqual(
            {'a': 1, 'b': {'a': 2, 'b': {'a: 1'}}},
            s.flatten_dict({'a': 1, 'b.a': 2, 'b.b.a': 1})
        )
    

    Мисля , че трябва да е :

    {'a': 1}
    

    а не

    {'a: 1'}
    

    и на двата теста , за flatten и unflatten е така..

  4. Какво се очаква да бъде държанието на функциите за flatten и unflatten на речници, когато даден ключ, който трябва да се създаде вече същестува, например: При unflatten_dict имаме

    { 'llama.mincho': 42 'llama': 'whatever' }

    В случая трябва да създадем двойката 'llama': {'mincho': 42}, но 'llama' вече се използва като ключ. Overwrite-ваме ли го?

  5. @Михаил, в този случай държанието не е дефинирано. Просто ще очакваме в резултата да има ключ 'llama' с една от двете стойности:

    • 'whatever'
    • {'mincho': 42}

    П.П.: Обнових тестовете отново, заради грешки в тях.

  6. На тестовете за flatten_dict виждам, че се опитвате да приложите функцията на вече flatten-нат речник, като сравнявате дали е равен на unflatten-нат. Това така ли тряба да е (май няма много смисъл)?

    Едит: Сега като се загледам, същото нещо има и в тестовете за обратната ф-я, unflatten_dict.

    Аз ли не разбирам или е при вас проблема?

  7. За първата задача: Според мен всичко можеш да се cast-не към string и след това резултата трябва да се върне като се повтори n-пъти. Тоест, ако имаме кода

    input_example = [((1, 2), 4), ('f', 3)]
    
    print(extract_type(input_example, tuple))
    

    То на екрана ще се изпринти:

    (1, 2)(1, 2)(1, 2)(1, 2)
    

    Прав ли съм?

    offtopic: @Янислав, за pull request-и може да видиш това ръководство. Доста добре е описан процеса. Прегледай го, ако не ти помогне (в което се съмнявам), може да пишеш във форума или да питаш Google ;)

  8. Именуване на променливи и колекции от сорта на "mylist" или "mystring" допустимо ли че, ако предположим, че извършваме просто някакво филтриране в зависимост от задачата? В случая 5 малки функции.

  9. @Минх Нгуен , не съм сигурен, но според мен тестовете имат 1 грешка на ред 114, поне при мен гърми на този тест.

    -> self.assertEqual(s.unflatten_dict(input), output) май трябва да е -> self.assertEqual(solution.unflatten_dict(input), output)

Трябва да сте влезли в системата, за да може да отговаряте на теми.