无编程背景新手初学 python, 在 Codewars 上面做题,遇到一个题目要求:将传入的任意名字列表里面四个字母长的名字列表返回,我想的办法是这样的:
def friend(x):
for value in x:
if len(value) != 4:
x.remove(value)
return x
然而传入测试列表['Ryan', '123', 'CoolMan']时,结果是这样:
friend(['Ryan', '123', 'CoolMan'])
['Ryan', 'CoolMan']
'123'被删掉了,'Coolman'没按我想的被删掉,请问原因是什么?
P.S. 解决这个问题本身的办法已经知道了,比如把四个字长的值放到新列表里,用 filter()等,这里希望知道该错误背后的原理。另外这种初级问题提在这合适吗,有更合适的地方请指条明路,不胜感激。
def friend(x):
for value in x:
if len(value) != 4:
x.remove(value)
return x
然而传入测试列表['Ryan', '123', 'CoolMan']时,结果是这样:
friend(['Ryan', '123', 'CoolMan'])
['Ryan', 'CoolMan']
'123'被删掉了,'Coolman'没按我想的被删掉,请问原因是什么?
P.S. 解决这个问题本身的办法已经知道了,比如把四个字长的值放到新列表里,用 filter()等,这里希望知道该错误背后的原理。另外这种初级问题提在这合适吗,有更合适的地方请指条明路,不胜感激。