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

问题描述 投票:-1回答:1

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

[ 'F', 'L', 'A', 'M', 'E', '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)
python list
1个回答
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']
© www.soinside.com 2019 - 2024. All rights reserved.