2016-11-20 103 views
4

我知道這是可能創造一系列數字的列表:如何使用增量步驟創建範圍列表?

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] 

但我想要做的是增加在每次迭代步驟:

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

體育當增量= +1

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

這是可能的蟒蛇?

+0

您可能需要自己編寫生成器。 –

+0

當'incremental_value'爲1時,結果爲[0,2,4,6,8,10,12,14,16,18]。或者你想在每次迭代中增加一步嗎? – ForceBru

+0

@ForceBru,你的權利。我想要的是將增量值添加到步驟以成爲新的步驟值p.e. step = 1 + 1 = 2,新的步長= 2,新的步長= 3,新的步長= 4等等。是的,每次迭代都增加一步。 – Reman

回答

5

這是可能的,但不能與range

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

你可以做這樣的事情:

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

謝謝蝙蝠俠,你給了與ForceBru相同的答案。我只接受了他的回答,因爲他提前1分鐘:)但是我非常感謝你的回答。 – Reman

0

我甚至進一步簡化上面的代碼。認爲這會做到這一點。

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

指定nth範圍內,爲您提供所有與特定模式的數字。

+1

b在哪裏使用,爲什麼使用「l」? 「 」不要將字符'l'(小寫字母el),'O'(大寫字母哦)或'I'(大寫字母的眼睛)作爲單個字符變量名稱使用,在某些字體中,這些字符不能與數字1和0當試圖使用'l'時,請使用'L'。 (http://legacy.python.org/dev/peps/pep-0008/#names-to-avoid) 另外你的代碼母鹿不輸出列表,如再製造希望 –

+0

我是一個有點新這些編程。 –

+0

當然,謝謝兄弟 –