Sto provando a creare una funzione che potrebbe ricevere come input molti o alcuni dizionari. Sto utilizzando il seguente codice:Funzione con i dizionari come argomenti opzionali - Python
def merge_many_dics(dic1,dic2,dic3=True,dic4=True,dic5=True,dic6=True,dic7=True,dic8=True,dic9=True,dic10=True):
"""
Merging up to 10 dictionaries with same keys and different values
:return: a dictionary containing the common dates as keys and both values as values
"""
manydics = {}
for k in dic1.viewkeys() & dic2.viewkeys() & dic3.viewkeys() & dic4.viewkeys() & dic5.viewkeys() & dic6.viewkeys()\
& dic7.viewkeys() & dic8.viewkeys() & dic9.viewkeys() & dic10.viewkeys():
manydics[k] = (dic1[k], dic2[k],dic3[k],dic4[k],dic5[k],dic6[k],dic7[k],dic8[k],dic9[k],dic10[k])
return manydics
Si noti che sto cercando di eguagliare l'argomenti dic3, dic4, dic5 e così via per "True", in modo che quando non vengono specificati e sono chiamati nella funzione non accade nulla. Tuttavia sto ricevendo il seguente errore:
Traceback (most recent call last):
File "/Users/File.py", line 616, in <module>
main_dic=merge_many_dics(dic1,dic2,dic3,dic4)
File "/Users/File.py", line 132, in merge_many_dics
& dic7.viewkeys() & dic8.viewkeys() & dic9.viewkeys() & dic10.viewkeys():
AttributeError: 'bool' object has no attribute 'viewkeys'
Chiunque può illuminare il mio viaggio disponibile?
FWIW, 'operator.and_' è un'alternativa alla soluzione in sospeso' lambda' –
. Grazie – abutremutante