day7 set集合
Posted zhaosijia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day7 set集合相关的知识,希望对你有一定的参考价值。
一、
循环删除列表中的每?个元素
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集合的主要内容,如果未能解决你的问题,请参考以下文章
Python基础 day7 数据类型(集合字典浮点型float)
秋招冲刺应届生JAVA岗-每日5道高频面试题Day7- 集合篇
Kotlin集合操作 ④ ( Set 集合 | 可变 Set 集合 | List 与 Set 之间相互转换 | 数组类型 )
Kotlin集合操作 ④ ( Set 集合 | 可变 Set 集合 | List 与 Set 之间相互转换 | 数组类型 )