Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: from collections import defaultdict питон что это и как это юзать?

  1. from collections import defaultdict питон что это и как это юзать?

    Йо народ! Я недавно начал изучать Python и тут наткнулся на строчку, которая мне не очень понятна: 'from collections import defaultdict'. Кто подскажет, что это вообще такое и зачем оно нужно? Может, примерчик какой кинете? Типа хочу реально понять, а не просто запомнить. Заранее спасибо!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! defaultdict из модуля collections полезная штука. Он позволяет создавать словари с дефолтным значением для несуществующих ключей. В нем тебе не нужно проверять наличие ключа перед присваиванием значения. Вот пример:

    Программный код:
    import collections
    collections.defaultdict(int)
    d['a'] += 1
    print(d['a'])  # Выведет 1, т.к. 'a' не было в словаре и int() вернул 0
    print(d['b'])  # Выведет 0, так как 'b' нет, и int() тоже возвращает 0 
    Полезная фича, если часто работаешь с комплексными структурами данных ещед!

  4. Цитата Сообщение от IvanVolkov
    Привет! defaultdict из модуля collections полезная штука. Он позволяет создавать словари с дефолтным значением для несуществующих ключей. В нем тебе не нужно проверять наличие ключа перед присваиванием значения. Вот пример:

    Программный код:
    import collections
    collections.defaultdict(int)
    d['a'] += 1
    print(d['a'])  # Выведет 1, т.к. 'a' не было в словаре и int() вернул 0
    print(d['b'])  # Выведет 0, так как 'b' нет, и int() тоже возвращает 0 
    Полезная фича, если часто работаешь с комплексными структурами данных ещед!
    О, круто, спасибо! Никак не мог понять, почему просто dict не хватит. Теперь ясно, что это экономит кучу строк кода. А для строк это будет работать?

  5. Да, эта фича удобна. Примерно так:

    Программный код:
    from collections import defaultdict
    defaultdict(list)
    d['foo'].append(1)
    d['foo'].append(2)
    print(
    d['foo']) 
    Получишь: [1, 2]. Как видишь, без дефолтного листа пришлось бы проверять, есть ли ключ.

  6. Цитата Сообщение от Леонид
    Да, эта фича удобна. Примерно так:

    Программный код:
    from collections import defaultdict
    defaultdict(list)
    d['foo'].append(1)
    d['foo'].append(2)
    print(
    d['foo']) 
    Получишь: [1, 2]. Как видишь, без дефолтного листа пришлось бы проверять, есть ли ключ.
    Оооо, так вот оно что! Значительно проще с такими вещами работать. Спасибо за инфу!

  7. Хай! Да, defaultdict может еще и выводить дефолтные значения для нестандартных типов данных. Например:

    Программный код:
    from collections import defaultdict
    defaultdict(lambda'default value')
    print(
    d['missing'])  # выведет 'default value' 
    Прикольная штука, правда?

  8. Цитата Сообщение от GoldenEagle
    Хай! Да, defaultdict может еще и выводить дефолтные значения для нестандартных типов данных. Например:

    Программный код:
    from collections import defaultdict
    defaultdict(lambda'default value')
    print(
    d['missing'])  # выведет 'default value' 
    Прикольная штука, правда?
    Годный примерчик с дефолтным значением через лямбду. Полезняк!

  9. Всем привет! Поддержка defaultdict-а — это реально огонь. Вот еще пример: с json-ом можешь работать:

    Программный код:
    from collections import defaultdict
    import json

    data 
    '{"a": 1, "b": 2}'
    defaultdict(intjson.loads(data))
    print(
    d['a'])  # 1
    print(d['c'])  # 0, так как 'c' нет и вызывается int() по дефолту 
    Много веселей, чем просто dict

  10. Цитата Сообщение от ЦаворитовыйЛучник
    Всем привет! Поддержка defaultdict-а — это реально огонь. Вот еще пример: с json-ом можешь работать:

    Программный код:
    from collections import defaultdict
    import json

    data 
    '{"a": 1, "b": 2}'
    defaultdict(intjson.loads(data))
    print(
    d['a'])  # 1
    print(d['c'])  # 0, так как 'c' нет и вызывается int() по дефолту 
    Много веселей, чем просто dict
    Ого, даже с json так можно? Это мощно! Буду пробовать, спасибо за инфу.

Страница 1 из 2 12 ПоследняяПоследняя