Короче способ написания списка-как-дикт-значение в Python?


У меня есть структура данных, которая выглядит так:

a = {
     'red': ['yellow', 'green', 'purple'],
     'orange': ['fuschia']
    }

Это код, который я пишу, чтобы добавить новые элементы:

if a.has_key(color):
    a[color].append(path)
else:
    a[color] = [path]

Есть ли более короткий способ, чтобы написать это?



345
1
задан 20 декабря 2011 в 07:12 Источник Поделиться
Комментарии
1 ответ

Вы можете использовать коллекции.defaultdict:

from collections import defaultdict

mydict = defaultdict(list)

Теперь вам просто нужно:

mydict[color].append(path)

defaultdict является подклассом дикт , который может быть инициализирован в списке, целое число...


кстати, использование has_key не рекомендуется, а на самом деле has_key был удален из Python 3.2.
При необходимости, используйте это более подходящие для Python идиома вместо:

if color in a:
........

7
ответ дан 20 декабря 2011 в 07:12 Источник Поделиться