我有2个数字25798709和25716544代表一些连续数字的最小值和最大值,每个数字与前面的数字相差一个例如。 25798709,25798710,25798711 ................ 25716544我想要一个将这些数字转换为1,2,3,4,5,......的Python代码.......并映射到1,2,3,4,5原来的数字在两列: 像:生成和映射两组数字
1 25798709
2 25798710
3 25798711
我有2个数字25798709和25716544代表一些连续数字的最小值和最大值,每个数字与前面的数字相差一个例如。 25798709,25798710,25798711 ................ 25716544我想要一个将这些数字转换为1,2,3,4,5,......的Python代码.......并映射到1,2,3,4,5原来的数字在两列: 像:生成和映射两组数字
1 25798709
2 25798710
3 25798711
给你:
mapping = dict(enumerate(range(25716544, 25798709)))
for i in iter(mapping):
print i, '->', mapping[i]
我应该警告你这是从零开始的。所以0 - > 25716544,1 - > 25716545等
为什么在使用dict的时候只能迭代枚举返回的对象呢? – 2011-06-02 00:17:52
OP想要映射,即字典。这就是为什么。 – 2011-06-02 00:29:36
# 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)
这会工作,并从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
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
因此,“映射”仅仅是减去或添加'25798709-1'? – 2011-06-02 00:36:05