2017-08-09 81 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或者我很困惑。

相關問題