我有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