2

我有一个开始结束和一个步骤,我想创建一个这样的列表(开始 = 0,结束 = 300,步骤 = 100):

[[1, 100], [101, 200], [201, 300]]

开始、结束和步骤会有所不同,因此我必须动态创建列表。

4

3 回答 3

4
>>> start = 0
>>> end = 300
>>> step = 100
>>> [[1 + x, step + x] for x in range(start, end, step)]
[[1, 100], [101, 200], [201, 300]]
于 2012-11-21T17:54:28.513 回答
1

你只需要一个简单的while循环: -

start = 0
end = 300
step = 100

my_list = []

while start < end:   # Loop until you reach the end
    my_list.append([start + 1, start + step]) 
    start += step    # Increment start by step value to consider next group

print my_list

输出 : -

[[1, 100], [101, 200], [201, 300]]

同样的事情可以通过rangexrange函数来实现,在list comprehension.

于 2012-11-21T17:53:01.707 回答
1

您可以同时创建两个rangeszip它们:

def do_your_thing(start, end, step):
    return zip(range(start, end - step + 2, step),
               range(start + step - 1, end + 1, step))
于 2012-11-21T17:56:59.103 回答