Liste: key parameter für index

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

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
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

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
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Das ist ipython Syntax, deshalb habe ich ja extra `help` erwaehnt.
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

cofi hat geschrieben:Das ist ipython Syntax, deshalb habe ich ja extra `help` erwaehnt.
Ok.

Das Beispiel funktioniert, besten Dank!

gruß
joh
Antworten