Python 删除 水仙花数

删除列表[100,370,373,153,108,360,371,451,407,135]中不是水仙花数的元素。

def Water(i):
    p = str(i)
    sum = 0
    for a in p:
        sum += int(a) ** len(p)
    if sum == i:
        return 1
    else:
        return 0

if __name__ == '__main__':
    a = [100, 370, 373, 153, 108, 360, 371, 451, 407, 135]
    for li in a:
        if(Water(li)==0):
            a.remove(li)
    print(a)

 

 

360不是水仙花数,为什么删不了

上面的代码有误,忘记列表元素改变了

""" 
@Time    : 2021/6/29 16:26
@Author  : Keep Doing this(小小的鹏弟)
@FileName: CSDN.py
@SoftWare: PyCharm
"""
def Water(i):
    p = str(i)
    sum = 0
    for a in p:
        sum += int(a) ** 3
    if sum == i:
        return 1
    else:
        return 0
if __name__ == '__main__':
    a = [100,370,373,153,108,371,451,407,135,360]
    b=[]
    for i in a:
        if (Water(i)==1):
            b.append(i)
    print(b)