Получение набора значений из словаря множеств

#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.