Python List控制流 - 为什么不跳过列表中已有的元素

时间:2017-08-09 13:29:05

标签: python list control-flow

基本上是尝试根据模式将数字添加到列表L中。

从索引点0开始,打印该索引点的元素。然后,下一个索引点变为刚刚打印的元素的int,并且模式将继续,直到完成。

如果已经使用了索引点,那么您将向左移动一个,直到到达尚未使用的索引点为止。

以下是我解决问题的方法。一切似乎都有效,即它沿着数字移动,但是当它遇到它已经使用过的索引点时仍会打印该元素。

为什么它似乎没有正确地跳到左边?

    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)

1 个答案:

答案 0 :(得分: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或i令人困惑。