2016-01-08 2 views
0

У меня есть функция, которая принимает в качестве входных нескольких словарей:Python - список dicts в функцию, которая принимает только * dicts

def multi_dicts(*dicts): 

У меня есть переменная, которая представляет собой список из нескольких словарей:

list_of_dicts=[{'2014-09': 209.0, '2014-08': 243.0},{'2014-09': 40.0, '2014-08': 300.0},{'2014-09': 100.0, '2014-08': 2.0}] 

Есть ли способ использовать эти словари внутри list_of_dicts как аргументы multi_dicts(*dicts), предполагая, что мы не знаем, сколько словарей будет внутри list_of_dicts (это сильно варьируется)?

В развернутом таким образом, будет выглядеть следующим образом:

multi_dicts(*dictionaries_found_inside_list_of_dicts) 
+6

Разве это не просто 'multi_dicts (* list_of_dicts)'? .. – alecxe

+2

Не ответ в этом вопросе? – timgeb

+0

Каждый день Python впечатляет меня тем, насколько интуитивно он может быть. Я не знал, что смогу использовать его так. – abutremutante

ответ

1

Это должно работать:

multi_dicts(*list_of_dicts) 

Ввод звездочку перед списком аргументов будет распаковать его.

Итак:

def foo(*bars): 
    for bar in bars: 
     print(bar) 

list_of_things = ['one', 'two', 'three'] 

foo(*list_of_things) 

Напечатает:

one 
two 
three 

Это работает так же хорошо, если список содержит словари.

Смежные вопросы