Es gibt ein Wörterbuch d
von Buchstaben und Frequenzen, die eine Hand in einem Spiel ähnlich wie Scrabble darstellt. Wenn die Buchstaben in word
innerhalb d
enthalten sind, dann werden die Frequenzen geändert oder die Buchstaben entfernt wird (wenn der Wert == 0) und die Funktion update
True
zurück, sonst d
ist unverändert und die Funktion gibt `False ':Wie könnte ich dieses Wort passender algo effizienter python
d = {'a': 1, 'p': 2, 'c': 1, }
dCopy = d.copy()
matching_lets = 0
def update():
for let in word:
if not let in dCopy:
return False
else:
if dCopy[let] == 1:
del dCopy[let]
else:
dCopy[let] -= 1
d = dCopy
return True
word = 'pap'
print update()
Dies ist Teil des Problems set 5 aus dem Kurs EDX mITX 6.00.1, Einführung in der Informatik und Programmierung mit Python
Ich denke, anstelle von 'Return false' in der ersten for-Schleife muss zu' continue' geändert werden und verwenden Sie eine Flagge zu überprüfen ist 'd' manipuliert oder nicht, um' false' zurückgeben, wenn nicht –
'd = dCopy' wird nichts tun, wenn Sie nicht in 'update()' deklarieren, dass 'd' global ist. Sie wären besser dran Renditen und Argumente zu verwenden und Ihre globalen Variablen loszuwerden. – khelwood