找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 178|回复: 2

[求助] 求教求教!谢谢!谢谢!

1

主题

1

帖子

1

积分

贫民

积分
1
蓝色空间 发表于 2019-1-28 11:14:23 | 显示全部楼层 |阅读模式
list1=['**','fds1','fds2','fds3','fds4','fds5','**','fds6']
list2=[]
for x in list1:
        if x=='**':
                list1.remove(x)
        else:
                list2.append(x)       
print('原列表内容:           '+str(list1))
print(" '非'条件新创列表内容:"+str(list2))


请问‘**’后一个元素不能添加到 list2?


微信图片_20190128105917.png
回复

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
johnnyPython 发表于 2019-2-3 01:29:07 | 显示全部楼层
因為在處理第一個list1時,若刪除了一個元素,整個列表的總個數發生了變化,列表1中原來元素會往前移動了(序號發生了改變),被刪的下一個元素會避開了下一輪循環的檢查。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
johnnyPython 发表于 2019-2-3 12:06:20 | 显示全部楼层
因為每次刪除list1的元素,整個list1的元素總個數發生改變,被刪的下一個元素序號會往前移動了,所以避開了下一輪循環的處理。
回复 支持 反对

使用道具 举报

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

本版积分规则

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