Ich versuche, eine Funktion zu erstellen, die als Eingabe viele oder einige Wörterbücher erhalten könnte. Ich verwende den folgenden Code:Funktion mit Wörterbüchern als optionale Argumente - 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
Bitte beachte, dass ich versuche, die Argumente dic3, DIC4, dic5 zu entsprechen und so weiter auf „True“, so dass, wenn sie nicht angegeben werden und werden in der Funktion aufgerufen nichts passiert. Allerdings bekomme ich den folgenden Fehler:
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'
Jeder meine Reise zur Verfügung zu beleuchten?
FWIW, "operator.and_" ist eine Alternative zu dieser "Lambda" –
herausragende Lösung. Vielen Dank – abutremutante