2016-11-20 4 views
4

Ich weiß, dass es möglich ist, eine Liste mit einer Reihe von Zahlen zu erzeugen:Wie erstelle ich eine Liste eines Bereichs mit inkrementellen Schritten?

list(range(0,20,1)) 
output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] 

aber, was ich will zu tun ist, den Schritt bei jeder Iteration zu erhöhen:

list(range(0,20,1+incremental value) 

P. E. wenn inkremental = +1

expected output: [0, 1, 3, 6, 10, 15] 

Ist dies in Python möglich?

+0

Sie müssten wahrscheinlich den Generator selbst schreiben. –

+0

Wenn 'incremental_value' eins ist, wäre das Ergebnis '[0, 2, 4, 6, 8, 10, 12, 14, 16, 18] '. Oder möchten Sie den Schritt bei jeder Iteration um eins erhöhen? – ForceBru

+0

@ForceBru, dein Recht. Was ich will ist, den inkrementellen Wert zu dem Schritt hinzuzufügen, um der neue Schrittwert p.e. zu werden. Schritt = 1 + 1 = 2, neuer Schritt = 2, neuer Schritt = 3, neuer Schritt = 4 usw. Ja Schritt für Schritt bei jeder Iteration erhöhen. – Reman

Antwort

5

Dies ist möglich, aber nicht mit range:

def range_inc(start, stop, step, inc): 
    i = start 
    while i < stop: 
     yield i 
     i += step 
     step += inc 
4

Sie können etwas tun:

def incremental_range(start, stop, step, inc): 
    value = start 
    while value < stop: 
     yield value 
     value += step 
     step += inc 

list(incremental_range(0, 20, 1, 1)) 
[0, 1, 3, 6, 10, 15] 
+0

Danke Batman, du hast die gleiche Antwort wie ForceBru gegeben. Ich gab die Antwort zu seiner Antwort nur, weil er 1 Minute früher war :) Allerdings schätze ich Ihre Antwort sehr. – Reman

0

ich noch weiter den obigen Code vereinfacht. Denke, das wird den Trick machen.

List=list(range(1,20)) 
a=0 
print "0" 
for i in List: 
    a=a+i 
    print a 

Angeben des nth Bereich, gibt Ihnen alle Zahlen mit dem speziellen Muster.

+1

Wo wird b verwendet und warum "l"? "Verwenden Sie niemals die Zeichen 'l' (Kleinbuchstabe el), 'O' (Großbuchstabe oh) oder 'I' (Großbuchstabe eye) als Einzelzeichenvariablennamen. In einigen Schriftarten sind diese Zeichen nicht von denen zu unterscheiden Nullen eins und null. Wenn Sie versucht sind, "l" zu verwenden, verwenden Sie stattdessen "L". " (http://legacy.python.org/dev/peps/pep-0008/#names-to-avoid) auch Code doe nicht ausgegeben, eine Liste, wie Reman –

+0

wollte bin ich ein bisschen neu diese Programmierung. –

+0

Sicher und Danke Bruder –

Verwandte Themen