python中关于列表list的两个函数&PTA猴子选大王

今天学习了python 列表中的两个常用函数: pop()和append().

1. pop() 函数:移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

eg: pop(0): 弹出列表的第一个元素值.

      pop(3): 弹出列表的第三个元素值.

      pop(): 弹出列表的最后一个元素值.

2. append(obj)函数: 在列表的最后面添加值obj.

    

这两个函数可用于解决PTA中猴子大王问题:

一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?

输入格式:

输入在一行中给一个正整数N(≤1000)。

输出格式:

在一行中输出当选猴王的编号。

--------------------------------------------------------------------------------------------------------------------

if __name__=='__main__':
    N=int(input())       #输入猴子的总数
    list_monkey = list(range(1, N+1))    #将编号为1-N的猴子放入列表
    i = 0          #定义一个数,每轮报数的开始为0
    while len(list_monkey) > 1:       #如果列表里数值大于1的话,就继续循环
        monkey = list_monkey.pop(0)         #获取列表中一个猴子的编号,并将其从列表中删除
        i += 1           #报数+1
        if i == 3:          #如果这个猴子报数是3
            i = 0           #重新报数,这个编号的猴子直接丢掉
        else:             #如果猴子报数不是3
            list_monkey.append(monkey)             #将这个编号的猴子插到列表最后面
    print(list_monkey[0])          #最后列表中剩一只猴子,将其编号值输出

 ----------------------------------------------------------------------------------------------------

posted @ 2022-03-01 17:08  可奈奈  阅读(186)  评论(0)    收藏  举报