TGINSIGHT SIMILAR POSTS
Најди сличен содржај
Изворен канал @pythonotes · Post #96 · 5 јун.
Бывают задачи когда из большого массива объектов требуется отфильтровать эти объекты по категориям. В результате получаем словарь примерно такого вида: data = { "category1": [item1, item2, ...], "category2": [item1, item2, ...], ... } При этом заранее мы не знаем список категорий и их необходимо добавлять в процессе итерации. Как такой код будет выглядеть: items = [...] sorted_items = {} for item in items: cat = get_category(item) if cat not in sorted_items: sorted_items[cat] = [] sorted_items[cat].append(item) Значением ключа является не сам элемент а промежуточный объект это список. Потому нам следует сначала убедиться, что он есть, а если нету то создать. Альтернативный код делающий тоже самое: for item in items: cat = get_category(item) if cat not in sorted_items: sorted_items[cat] = [item] else: sorted_items[cat].append(item) Чтобы избежать этой проверки можно использовать тип defaultdict, это очень простой класс который сам за вас сделает проверку и добавит нужный тип если его нет. Просто укажите нужный тип в конструкторе. from collections import defauldict items = [...] sorted_items = defaultdict(list) for item in items: sorted_items[get_category(item)].append(item) Если указанного ключа нет в словаре, то он создаётся сразу со списком в значении и возвращается как будто он там и был. #tricks#libs
Пронајдени 0 слични објави
Пребарај: #libs
Не се пронајдени слични објави.
Оваа објава нема претходно пресметани резултати на сличност.