码迷,mamicode.com
首页 > 其他好文 > 详细

day7 set集合

时间:2018-06-07 21:59:37      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:元素   for   set   从后往前   获取   出现   问题   end   内容   

一、
循环删除表中的每?个元素
li = [11, 22, 33, 44]
for e in li:
li.remove(e)
print(li)
结果:
[22, 44]
分析原:
for的运?过. 会有?个指来记录当前循环元素是哪?个, ?开始这个指指向0
. 然后获取到0元素. 接着删除0. 这个时候. 来是?个的元素会?的变成
0. 然后指向后移动?次, 指向1元素. 这时来的1变成了0, 也就不会被删除了.
?pop删除试试:
li = [11, 22, 33, 44]
for i in range(0, len(li)):
del li[i]
print(li)
结果: 报错
# i= 0, 1, 2 删除的时候li[0] 被删除之后. 后??个就变成了第0.
#
以此类推. i = 2的时候. list中只有?个元素. 但是这个时候删除的是第2个 肯定报错啊
分析发. 循环删除都不?. 不论是?del是?remove. 都不能. 那么pop?
for el in li:
li.pop()
# pop
也不?
print(li)
结果:
[11, 22]
只有这样是可以的:
for i in range(0, len(li)): # 循环len(li), 然后从后往前删除
li.pop()
print(li)
或者. ??个表来记你要删除的内容. 然后循环删除
li = [11, 22, 33, 44]
del_li = []
for e in li:
del_li.append(e)
for e in del_li:
li.remove(e)
print(li)
注意: 于删除元素导致元素的索改变, 所以容出现问题. 量不要再循环中直接去删
元素. 可以把要删除的元素添加到?个集合中然后再批量删除

 

day7 set集合

标签:元素   for   set   从后往前   获取   出现   问题   end   内容   

原文地址:https://www.cnblogs.com/zhaosijia/p/9152762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!