Erstelle eine Liste mit immer größer werdenden Zahlen Python [geschlossen]

8

Wie kann ich eine Funktion erstellen, die eine Liste erstellt und die Anzahl der darin enthaltenen Zahlen jedes Mal auf einen bestimmten Wert erhöht?

Zum Beispiel, wenn das Maximum 4 war, würde die Liste

enthalten %Vor%

Es ist schwer zu erklären, wonach ich suche, aber aus dem Beispiel, das ich denke, wirst du verstehen!

Danke

    
Belgin Fish 05.11.2012, 16:24
quelle

8 Antworten

16

Eine verschachtelte Schleife. Dies wäre ein sehr einfacher Weg, dies zu tun. Es gibt viel bessere Möglichkeiten, dies sollte Ihnen die allgemeine Idee geben.

%Vor%

Hier ist es mit Listenverständnis:

%Vor%

Verwenden Sie extend wie vorgeschlagen.

%Vor%     
Inbar Rose 05.11.2012, 16:27
quelle
17

Ich würde itertools.chain verwenden:

%Vor%

oder itertools.chain.from_iterable , um es etwas träglicher zu machen:

%Vor%

Und für die ultimative Faulheit, paaren Sie mit itertools.repeat - (mit xrange in Sie verwenden python2.x):

%Vor%

Als Funktion:

%Vor%     
mgilson 05.11.2012 16:32
quelle
9

Sie können eine rekursive Funktion verwenden:

%Vor%     
E.Z. 05.11.2012 16:40
quelle
7
%Vor%

Dies kann jedoch nicht in einen echten Generator umgewandelt werden, im Gegensatz zu itertools.chain , was der kanonische Weg ist.

    
Lev Levitsky 05.11.2012 16:27
quelle
4

Unterschiedliche Sichtweise auf das Problem (etwas weniger komplex):

%Vor%     
luke14free 05.11.2012 16:49
quelle
4

Eine ziemlich direkte Möglichkeit zum Erstellen einer Liste wie gezeigt ist über

%Vor%

Dabei ist n die größte Zahl, die in der Liste angezeigt wird. Das Obenstehende ist äquivalent zu den Methoden, die in mehreren zuvor vorgeschlagenen Antworten verwendet wurden, aber etwas sauberer im Ausdruck.

Eine Alternative zu allen bisher erwähnten Methoden ist, dass das i th Element der Liste ungefähr gleich dem ganzzahligen Teil der Quadratwurzel von 2*i ist. Mit leichten Anpassungen macht dies einen ziemlich einfachen Generator möglich, wie folgt.

%Vor%

Hier ist ein Beispiel für die Ausgabe des Codes im Python 2.7.3-Interpreter:

%Vor%     
James Waldby - jwpat7 05.11.2012 17:40
quelle
3
%Vor%     
Droogans 05.11.2012 16:31
quelle
2

Ich würde mit einem Generator gehen:

%Vor%     
Russell Borogove 05.11.2012 19:00
quelle

Tags und Links