python简单的问题,智商不够用了。。。

查看:86
本文介绍了python简单的问题,智商不够用了。。。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

为何遍历a只遍历3次?智商不够了,list里最后一个为何没遍历到?智商不够了。。。

a = ["asd_1","asd_2","3","4"]
b = a

for i in a:
    print(i)
    if i.find('asd_') < 0:
        b.remove(i)

输出:
asd_1
asd_2
3

解决方案

因为列表上可变对象啊,a和b其实只想的是同一个地址,在b上面remove会影响a的迭代,不信你把a打印出来看

a = ["asd_1", "asd_2", "3", "4"]
b = a

for i in a:
    print(i)
    if i.find('asd_') < 0:
        b.remove(i)
print a

输出:

asd_1
asd_2
3
['asd_1', 'asd_2', '4']

这时a的长度已经变成3了

这篇关于python简单的问题,智商不够用了。。。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆