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

2024-03-28 18:39:08 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,我想创建一个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)

Tags: sample游戏len字母逻辑物品popempty
1条回答
网友
1楼 · 发布于 2024-03-28 18:39:08

功能:

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']

相关问题 更多 >