2016-11-20 47 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

当然,谢谢兄弟 –