Zap hat geschrieben:Code: Alles auswählen
>>> import operator
>>> sorted(ergebnis, key = operator.itemgetter(1))
Hi Zap!
Code: Alles auswählen
>>> sorted(ergebnis, key = lambda x: x[1])
[('c', 1), ('b', 2), ('a', 3)]
>>> def keyfunc(x):
... return x[1]
...
>>> sorted(ergebnis, key = keyfunc)
[('c', 1), ('b', 2), ('a', 3)]
>>>
Als ``key`` kann eine Funktion übergeben werden. Diese Funktion wird beim Iterieren über das zu sortierende Objekt für jedes enthaltene Item einmal aufgerufen.
Ich gehe davon aus, dass ``operator.itemgetter`` schneller als ``lambda`` oder eine selbst geschriebene Funktion ist, da ``operator`` ein eingebautes, wahrscheinlich in C geschriebenes, Modul ist. -->
Code: Alles auswählen
>>> help(operator.itemgetter)
Help on class itemgetter in module operator:
class itemgetter(__builtin__.object)
| itemgetter(item) --> itemgetter object
|
| Return a callable object that fetches the given item from its operand.
| After, f=itemgetter(2), the call f(b) returns b[2].
mfg
Gerold