如何从列表中删除项目并从下一项开始计数?

时间:2017-12-17 15:09:34

标签: python list

举个例子,我想创建一个FLAMES游戏。以下是清单。

[' F'' L'' A'' M'' E',& #39; S']

当我试图删除第11项时,要删除的第一个字母是" E"。然后计数必须从字母" S"开始。我不知道如何构建逻辑。

计数必须一遍又一遍地重复,直到我们得到一个项目。在我们弹出第11项" E"之后,计数必须从" S"而第11项将是" S"这次。现在" S"必须删除,计数必须从" F"然后第11个字母将是" A"。之后删除" F"和" L"。最后,这封信" M"应该留下来。这就是我想要的逻辑

这是我最初尝试过的。

x = 11
sample = ['f','l','a','m','e','s']
print len(sample)
empty = []
while True:
    print sample
    if len(sample) == 1:
        print sample
        print "Congratulations!!! Your result is %s"%(sample[0].upper())
        break
    elif len(sample)>= x:
        sample.pop(x-1)
    elif len(sample)< x:
        y = x % len(sample)
        sample.pop(y-1)

1 个答案:

答案 0 :(得分:1)

功能:

sample = ['f','l','a','m','e','s']

def  last_item(sample, x):
    rest = 0
    a = 0
    while (len(sample) >1):
        rest = (x+rest-a) % len(sample)
        if rest == 0:
            rest = len(sample)
        print('element eliminated', sample[rest - 1])
        sample.pop(rest - 1)
        a = 1
    return sample


print(last_item(sample, 5))

输出x = 5:

element eliminated e
element eliminated m
element eliminated s
element eliminated l
element eliminated a
['f']