2017-07-25 3 views
0

Gibt es eine effiziente Möglichkeit, das Element zu finden, das am häufigsten in einer Liste vorkommt, wenn das Element ein Array der Länge 2 ist?analoger argmax für eine Liste mehrdimensionaler Arrays (PYTHON)

Beispiel:

l = [(1,0),(1,0),(1,1),(0,0),(1,0)] 

Ich möchte dies zurück: (1,0) wie die am häufigsten erscheint.

Scheint einfach, aber ich kann keinen Weg finden, dies zu tun.

Antwort

2

könnten Sie collections.Counter

>>> import collections 
>>> l = [(1,0),(1,0),(1,1),(0,0),(1,0)] 
>>> c = collections.Counter(l) 
>>> c.most_common(1) 
[((1, 0), 3)] 

Ansonsten verwenden Sie max mit einem Lambda als key Argument

>>> max(l, key = lambda i: l.count(i)) 
(1, 0) 
+0

, der wie ein Charme, Dank sehr viel CoryKramer verwenden können! :) Es heißt, ich muss 9 Minuten warten, bevor ich die richtige Antwort akzeptiere, also werde ich das bald tun – user8188120

Verwandte Themen