2017-08-09 68 views
-1

基本上试图根据模式将数字添加到列表L.Python列表控制流 - 为什么不会跳过列表中的元素

从索引点0开始打印该索引点的元素。然后下一个索引点变成你刚刚打印的元素的整数,并且模式一直持续到完成。

捕获是如果已经使用该索引点,则向左移动一个索引点直到达到尚未使用的索引点。

以下是我对该问题的解决方案。似乎所有东西都能正常工作,即它沿着数字移动,但是当它遇到一个已经使用它的索引点时,它仍然会打印该元素。

任何想法,为什么它似乎没有正确地跳到左边?

Output is: 
    If L is: L = [1, 4, 4, 1, 2, 4, 3] 
    N is: 1, 4, 2, 4, 2, 4, 2] when it should 
    [1, 4, 2, 4, 1, 4, 3] 

    # other way around 

L = [1, 4, 4, 1, 2, 4, 3] 
for index, s in enumerate(L): 
    print(index, s) 

print(' ', L) 

M = [] 
N = [] 
T = [] 


i = L[0] 
index_position = 0 

while len(T) != len(L): 
    if index_position in T: 
     index_position = index_position + 1 
    else: 
     N.append(i) 
     T.append(index_position) 
     index_position = i 
     i = L[index_position] 


print('N is: ', N) 
print('T is: ', T) 

回答

0
seen_that_before = [] 
N = [] 

for number in L 
    if number in seen_that_before: continue 
    seen_that_before.append(number) 
    N.append(number) 

类似的东西?

请使用重要的变量名称。 N,T,L或者我很困惑。

相关问题