2013-03-22 81 views
1

作为一个绿色的Python Python程序员,我有一个小问题,我会感激,如果有人可以帮助!Python中的列表,循环数组,

我有两个列表

随机重复号码的清单(不明大小),如:

number = [44,198,57,48,658,24,7,44,44,44..] 

在数 我想,为了给这些号码的人的名单N,一个人的一个号码。如果重复一个数字,程序会在第一次出现时找出获得此号码的人。这意味着我要打印列表像

people = [1,2,3,4,5,6,7,1,1,1...] 

print people 

回答

0

商店从号码映射到指数在dict,和你去更新它。

numbers = [44,198,57,48,658,24,7,44,44,44.] 
index_mapping = {} 
indexes = [] 
next_index = 1 
for number in numbers: 
    if number in index_mapping: 
     # already seen 
     indexes.append(index_mapping[number]) 
    else: 
     # a new one 
     indexes.append(next_index) 
     index_mapping[number] = next_index 
     next_index += 1 

print indexes