#python #dictionary #set
#python #словарь #набор
Вопрос:
Какой предпочтительный метод получения набора значений из словаря множеств?
Я придумал использовать reduce
и itervalues()
задавался вопросом, есть ли метод получше.
>>> m_dict = { 'a': set([1,2]),
... 'b': set([1,4,5]),
... 'c': set([2,8,9]) }
>>> print m_dict
{'a': set([1, 2]), 'c': set([8, 9, 2]), 'b': set([1, 4, 5])}
>>> reduce(lambda x,y:x.union(y), m_dict.itervalues())
set([1, 2, 4, 5, 8, 9])
>>>
Спасибо
Ответ №1:
set.union
может принимать несколько наборов, поэтому, set.union(*m_dict.values())
Комментарии:
1. Как ни странно, я провел часть сегодняшнего дня, выполняя мыслительные упражнения, пытаясь придумать, как использовать reduce…
2. Я абсолютно обожаю упаковку / распаковку значений Python!
3. @DTing: 😀 Мне нравится это название! «Шлепок»! В конце концов, это своего рода то, что он делает.
4. Мне было бы интересно узнать историю именования splat, я где-то читал , что это было связано с появлением «раздавленной ошибки» asterisk на многих ранних принтерах line.