Python-Äquivalent von Haskell [1 ..] (um eine Liste zu indizieren)

7

Ich habe eine Liste von Elementen in Python. Ich kenne die Anzahl der Elemente in der Liste nicht. Ich möchte der Liste Indizes hinzufügen.

In Haskell konnte ich Folgendes tun

%Vor%

Stellen Sie sich nun vor, dass die Zeichenfolge eine unbekannte Größe hatte. Dies würde in Haskell immer noch funktionieren, und die Integer-Liste gibt so viele ganze Zahlen wie nötig zurück, bis der String abläuft.

Wie würde man das Äquivalent in Python machen?

Ich habe es versucht:

%Vor%

Und es funktioniert, aber ich frage mich, ob es einen kürzeren / saubereren Weg gibt, da es 4 Zeilen Code ist und sich sehr anfühlt.

    
user985366 29.07.2015, 20:29
quelle

4 Antworten

21

Mach einfach list(enumerate(s)) . Dies iteriert über das enumerate -Objekt und konvertiert es in ein list .

    
TigerhawkT3 29.07.2015, 20:31
quelle
5

Sie können es mit einem Listenverständnis vereinfachen:

%Vor%     
juanchopanza 29.07.2015 20:31
quelle
1

Sie können die Funktion range mit zip verwenden.

Für Python 2:

%Vor%

Für Python 3:

%Vor%     
Brien 29.07.2015 20:31
quelle
1

Die Verwendung von enumerate ist definitiv der richtige Weg, aber hier ist eine etwas funktionellere Lösung mit toolz :

%Vor%     
zero323 29.07.2015 20:39
quelle

Tags und Links