找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2480|回复: 3

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

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

主题

3

帖子

3

积分

贫民

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

使用道具 举报

0

主题

3

帖子

3

积分

贫民

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

使用道具 举报

0

主题

102

帖子

102

积分

侠客

积分
102
傻眼貓咪 发表于 2021-8-7 14:59:11 | 显示全部楼层
本帖最后由 傻眼貓咪 于 2021-8-7 15:01 编辑
  1. list1 = ['**', 'fds1', 'fds2', 'fds3', 'fds4', 'fds5', '**', 'fds6']
  2. list2 = []
  3. for x in list1:
  4.     if x == '**':
  5.         pass # 這裡用 pass 略過這裡
  6.     else:
  7.         list2.append(x)      
  8. print('原列表内容:           '+str(list1))
  9. print(" '非'条件新创列表内容:"+str(list2))
复制代码


最後會得出答案如下:
  1. 原列表内容:           ['**', 'fds1', 'fds2', 'fds3', 'fds4', 'fds5', '**', 'fds6']
  2. '非'条件新创列表内容:['fds1', 'fds2', 'fds3', 'fds4', 'fds5', 'fds6']
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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