2
sequence = [1, 1, 1, 2, 3]

sequence2 = []
k = 0
if len(sequence) == 2 or len(sequence) == 1:
    print('Great!')
else:
    for element in range(0, (len(sequence))):
        sequence2.append(sequence[element])
        sq = sequence2.index(sequence2[-1])
        print(sequence2, sq)
        if sequence2 == sorted(sequence2):
            print('This is good thus far:', sequence2)
        else:
            print(sequence2[sq-1], sequence2[sq])
            print(sequence2.index(sequence2[-1]))
            if sequence2[sq-1] >= sequence2[sq]:
                sequence2.pop(sequence2.index(sequence2[sq - 1]))
                print('We poppoed an element')
                print(sequence2)
                k = k+1
if k >= 2:
    print(sequence2)
    print('This doesnt work')
else:
    print('Works properly!')

输出:

[1] 0  
This is good thus far: [1]  
[1, 1] 0  
This is good thus far: [1, 1]  
[1, 1, 1] 0  
This is good thus far: [1, 1, 1]  
[1, 1, 1, 2] 3  
This is good thus far: [1, 1, 1, 2]  
[1, 1, 1, 2, 3] 4  
This is good thus far: [1, 1, 1, 2, 3]  
Works properly!  

大家好; 我有一个问题,为什么程序在前 3 次迭代时给我返回 0 表示 sq?它不应该给我0、1、2..吗?在过去的 2 天里,我无法绕开它...

4

2 回答 2

4

因为sequence2.index(value)返回 'value' 的第一个实例,并且您在 sequence2 中重复了 1

于 2018-05-09T21:46:19.260 回答
1

因为您有 3 个“1”,如果您尝试使用不同的数据,它会显示第一个

于 2018-05-09T21:49:12.730 回答