鱼C论坛

 找回密码
 立即注册
查看: 2306|回复: 4

有一个小小的问题,关于列表删除

[复制链接]
发表于 2017-1-4 00:24:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
y = ['a','b','c','d','e','f','g','h',1,2,3,6,5]

for i in y:
    if type(i) == str:
        y.remove(i)
        print(y)
        
代码如上,为什么打印出来的结果还是会有字母?好奇怪而且是索引号是单数的还在,求解!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-4 08:01:32 From FishC Mobile | 显示全部楼层
因为你循环是按照删除前的列表来的,你每删除一次列表就前移一位。比如索引0被删除后,索引1就变成了0,下次删除索引1的时候,其实是删除了索引2。依次类推,所有单号索引都被保留了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-4 09:33:54 | 显示全部楼层
y = ['a','b','c','d','e','f','g','h',1,2,3,6,5]
z = []
for i in y:
    if type(i) != str:
        z.append(i)
print(z)
换这种方式可以吧?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-4 20:14:03 | 显示全部楼层
2楼可以,这解释让人秒懂。,3楼的我验证了,是对的,!=str,应该也可以是=int对吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-4 22:31:11 | 显示全部楼层
懂了,原来如此,2楼的方法可行,换个思维思考
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-24 19:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表