Ich habe diese Post 1, lesen 2, 3, aber ich kann immer noch nicht herausfinden, folgende Python-Code:wie collections.defaultdict.get Arbeit in den wichtigsten Paramter der max Aussage --- Python
>>> s = 'mississippi'
>>> d = defaultdict(int)
>>> for k in s:
... d[k] += 1
...
>>> lis = ['m', 'i', 's', 'p']
>>> max(lis, key=d.get)
'i'
Ich weiß, die Zeiten, in denen ein Buchstabe vorkommt, gespeichert in d. Und wenn ich eingib:
>>> d.get
<built-in method get of collections.defaultdict object at 0x7f506ed8d710>
Es sagte, dass get ist eine Methode. Warum verwendet es keine Klammern? Und welche Art von Datenform gibt es zurück?
Wird diese Kopie eingefügt und von einer tatsächlichen interaktiven Interpreter-Sitzung, die Sie ausgeführt haben, kopiert? Es hätte nicht funktionieren sollen; Das 'Schlüssel'-Argument für 'max' ist nur ein Schlüsselwort. – user2357112
@ user2357112 Entschuldigung. mein Fehler. – sydridgm
Verwenden Sie [collections.Counter] (https://docs.python.org/2/library/collections.html#counter-objects). Es hat eine 'most_common()' Methode, die genau das tut, was Sie hier tun. –