Seite 1 von 1

Liste: key parameter für index

Verfasst: Samstag 10. September 2011, 23:33
von joh#
Hallo,

* für das Sortieren einer Liste kann ja ein key parameter angegeben werden
(zum Aufrufen einer Funktion, die aus den Elementen jeweils etwas
Vergleichbares extrahiert)
* geht das auch für Liste.index(gesuchterWert)? (Meine Liste enthält nämlich
als Elemente Tupels, somit kann ich nicht mit index nach einem Tupel suchen,
welches z.B. als 2. Element eine 5 hat)

Gruß
joh

Re: Liste: key parameter für index

Verfasst: Samstag 10. September 2011, 23:52
von cofi
Nein:

Code: Alles auswählen

In [2]: list.index?
Type:		method_descriptor
Base Class:	<type 'method_descriptor'>
String Form:	<method 'index' of 'list' objects>
Namespace:	Python builtin
Docstring:
    L.index(value, [start, [stop]]) -> integer -- return first index of value.
    Raises ValueError if the value is not present.
Die `help` Funktion sollte man aber kennen. Dass `list.index` das nicht kann ist schade, da hilft nur das manuelle iterieren:
Ungetestet:

Code: Alles auswählen

def position(iterable, value, key=None):
    for i, e in enumerate(iterable):
        e = e if key is None else key(e)
        if e == value:
            return i
    return -1

Re: Liste: key parameter für index

Verfasst: Sonntag 11. September 2011, 11:33
von joh#
cofi hat geschrieben:

Code: Alles auswählen

In [2]: list.index?
Type:		method_descriptor
Base Class:	<type 'method_descriptor'>
String Form:	<method 'index' of 'list' objects>
Namespace:	Python builtin
Docstring:
    L.index(value, [start, [stop]]) -> integer -- return first index of value.
    Raises ValueError if the value is not present.
Die `help` Funktion sollte man aber kennen.
Diese Art von help kenne ich tatsächlich nicht, bei mir kommt da:

Code: Alles auswählen

Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> list.index?
  File "<stdin>", line 1
    list.index?
              ^
SyntaxError: invalid syntax

Re: Liste: key parameter für index

Verfasst: Sonntag 11. September 2011, 11:35
von cofi
Das ist ipython Syntax, deshalb habe ich ja extra `help` erwaehnt.

Re: Liste: key parameter für index

Verfasst: Sonntag 11. September 2011, 13:54
von joh#
cofi hat geschrieben:Das ist ipython Syntax, deshalb habe ich ja extra `help` erwaehnt.
Ok.

Das Beispiel funktioniert, besten Dank!

gruß
joh