生成和映射两组数字

时间:2011-06-01 22:02:54

标签: python mapping numbers

我有2个数字25798709和25716544表示某些连续数字的最小值和最大值,每个数字与前一个数字相差一个例如。 25798709,25798710,25798711 ................ 25716544我想要一个python代码,将这些数字转换为1,2,3,4,5,....... .......并将1,2,3,4,5映射到两列中的原始数字: 喜欢:

  1     25798709
  2     25798710
  3     25798711

4 个答案:

答案 0 :(得分:1)

Oneliner:

print(*['{0}\t{1}'.format(*i) for i in enumerate(range(MIN,MAX+1), 1)], sep='\n')

对于python2.6或2.7,只需添加from __future__ import print_function

答案 1 :(得分:0)

你在这里:

mapping = dict(enumerate(range(25716544, 25798709)))
for i in iter(mapping):
    print i, '->', mapping[i]

我应该警告你,这是零基础的。所以0 - > 25716544,1 - > 25716545等。

答案 2 :(得分:0)

# make it work in both Python 2 and 3
from __future__ import print_function
try: xrange
except NameError: xrange= range

def my_enumerate(num1, num2):
    start= min(num1, num2)
    end= max(num1, num2) + 1
    for data in enumerate(xrange(start, end), 1):
        print("%d\t%d" % data)

答案 3 :(得分:0)

这将起作用并从1开始:

for idx, num in enumerate(range(25716544, 25798709), 1):
  print idx, ' ', num

从0开始:

for idx, num in enumerate(range(25716544, 25798709)):
  print idx, ' ', num