原因:不为啥,就是 遍历 + remove()某一元素之后,其余元素 索引 将往前移动!!!
改进:1. for循环遍历后面加上(::-1) 2. 新建空白列表,改用append()方法
过程:想用remove()结合遍历for循环 删除指定元素,结果让人很抓狂,有些元素总是删不掉,完全不理解为啥😭,鼓捣了几个小时--简直怀疑人生……最后发现,原来是自己基础知识不牢固,竟忘记 remove()方法会改变原列表的元素索引~
list_ = ['【1】', '【4】', '【6】', '【7】', '【8】', '【9】', '【11】', '【12】', '【13】','【14】']
for i in list_[::-1]: print(i)
>>>【14】
【13】
【12】
【11】
【9】
【8】
【7】
【6】
【4】
【1】
解决方法:在for循环后加[::-1]即可,其中,第一个:表示对所有元素进行遍历,:-1表示以步长为-1进行(即从后往前)。这样子后,remove()虽然会让后面元素整体索引减一,但是由于咱们是从后往前遍历,自然不会受其影响啦,哈哈哈哈哈😏~
不过,上述方法得到的结果顺序是颠倒的😣
因此,还可以考虑新建空列表,使用append()追加你想要的元素即可。
list_ = ['【1】', '【4】', '【6】', '【7】', '【8】', '【9】', '【11】', '【12】', '【13】','【14】']
a = []
for i in list_:
if (i !='【6】' and i != '【7】'): a.append(i)
print(a)
>>>['【1】', '【4】', '【8】', '【9】', '【11】', '【12】', '【13】', '【14】']
这是傻羊,欢迎提问🥰🥰🥰