在python中生成数字

时间:2014-11-10 19:06:06

标签: python python-2.7

我正在使用我的python脚本在循环下创建变量,这样我就可以生成数字列表。

示例:

for range 0:
>>>> start with 4128
4129
4130
..etc until on
>>>> end with 4196

then 

for range 1:
>>>> restart with 4198
4199
4200
..etc until on
>>>> end with 4266

then 

for range 2:
>>>> restart with 4268
4269
4270
..etc until on
>>>> end with 4336

then

for range 3:
>>>> restart with 4337
4338
4339
..etc until on
>>>> end with 4406


for range 4:
>>>> restart with 4408
4409
4410
..etc until on
>>>> end with 4476


for range 5:
>>>> restart with 4478
4479
4480
..etc until on
>>>> end with 4546


for range 6:
>>>> restart with 4547
4548
4549
..etc until on
>>>> end with 4616

所以当我尝试这个时:

number_in_range = 6

for index in range(0, number_in_range):
    generate_id = 4128 + 68 + index
    print generate_id

我会得到这样的东西:

19:04:46 T:2420  NOTICE: 4196
19:04:46 T:2420  NOTICE: 4197
19:04:46 T:2420  NOTICE: 4198
19:04:46 T:2420  NOTICE: 4199
19:04:46 T:2420  NOTICE: 4200
19:04:46 T:2420  NOTICE: 4201
19:04:46 T:2420  NOTICE: 4202
19:04:46 T:2420  NOTICE: 4558
19:04:48 T:2420  NOTICE: 4196
19:04:48 T:2420  NOTICE: 4197
19:04:48 T:2420  NOTICE: 4198
19:04:48 T:2420  NOTICE: 4199
19:04:48 T:2420  NOTICE: 4200
19:04:48 T:2420  NOTICE: 4201
19:04:48 T:2420  NOTICE: 4202
19:04:48 T:2420  NOTICE: 4559
19:04:48 T:2420  NOTICE: 4196
19:04:48 T:2420  NOTICE: 4197
19:04:48 T:2420  NOTICE: 4198
19:04:48 T:2420  NOTICE: 4199
19:04:48 T:2420  NOTICE: 4200
19:04:48 T:2420  NOTICE: 4201
19:04:48 T:2420  NOTICE: 4202
19:04:48 T:2420  NOTICE: 4560
19:04:49 T:2420  NOTICE: 4196
19:04:49 T:2420  NOTICE: 4197
19:04:49 T:2420  NOTICE: 4198
19:04:49 T:2420  NOTICE: 4199
19:04:49 T:2420  NOTICE: 4200
19:04:49 T:2420  NOTICE: 4201
19:04:49 T:2420  NOTICE: 4202
19:04:49 T:2420  NOTICE: 4561
19:04:50 T:2420  NOTICE: 4196
19:04:50 T:2420  NOTICE: 4197
19:04:50 T:2420  NOTICE: 4198
19:04:50 T:2420  NOTICE: 4199
19:04:50 T:2420  NOTICE: 4200
19:04:50 T:2420  NOTICE: 4201
19:04:50 T:2420  NOTICE: 4202
19:04:50 T:2420  NOTICE: 4562
19:04:52 T:2420  NOTICE: 4196
19:04:52 T:2420  NOTICE: 4197
19:04:52 T:2420  NOTICE: 4198
19:04:52 T:2420  NOTICE: 4199
19:04:52 T:2420  NOTICE: 4200
19:04:52 T:2420  NOTICE: 4201
19:04:52 T:2420  NOTICE: 4202
19:04:52 T:2420  NOTICE: 4563
19:04:53 T:2420  NOTICE: 4196
19:04:53 T:2420  NOTICE: 4197
19:04:53 T:2420  NOTICE: 4198
19:04:53 T:2420  NOTICE: 4199
19:04:53 T:2420  NOTICE: 4200
19:04:53 T:2420  NOTICE: 4201
19:04:53 T:2420  NOTICE: 4202

当我在循环下使用变量来创建我真正想要的数字时,能告诉我如何生成数字吗?

2 个答案:

答案 0 :(得分:1)

这个嵌套列表理解应该可以解决这个问题

l = [[50*i + j for j in range(4128, 4197)] for i in range(6)]

输出

[[4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196],
 [4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246],
 [4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296],
 [4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346],
 [4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396],
 [4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446]]

然后,您可以通过循环

获取每个ID
for inner in l:
    for ID in inner:
        print(ID)

答案 1 :(得分:0)

这就是你需要的:

[i + j for i in range(4128, 4548, 70) for j in range(69)]

所以,迭代地:

for i in range(4128, 4548, 70):
    for j in range(69):
        print 'NOTICE: %d' % (i + j)

如何运作?

好吧,我注意到你从4128开始跳过70个数字块中的每个第69个数字,所以我有两个计数器ij,第一个,{ {1}},负责遍历70个数字的块i,第二个是“偏移量”,当添加到4128, 4198,...时,它会给出最终索引。

我认为您也可以使用i,而且您更清楚的是每70年都会跳过一个数字。

相关问题