利用迭代器删除表中元素
迭代 利用 删除 元素 表中
2023-09-11 14:21:07 时间
例子:将test表中的偶数移除掉
local test = { 2, 3, 4, 8, 9, 100, 20, 13, 15, 7, 11}
for i, v in ipairs( test ) do
if v % 2 == 0 then
table.remove(test, i)
end
end
for i, v in ipairs( test ) do
print(i .. "====" .. v)
end
打印结果:
1====3
2====8
3====9
4====20
5====13
6====15
7====7
8====11
结果偶数8,20还存在。
因为迭代器每删除一个元素,然后的元素自动往前移动。
正确的删除方式:
方式一:从后面往前删除
tb={1,2,3,4,5,6,7,8,9,10,11,12,13,14}
for i=#tb,1,-1 do
if tb[i]%2==0 then
table.remove(tb,i)
end
end
方式二:while遍历
i=1
while i<=#tb do
if tb[i]%2==0 then
table.remove(tb,i)
else
i=i+1
end
end
相关文章
- Java实现 LeetCode 284 顶端迭代器
- 迭代器:斐波那契数列
- Python 入门(九)迭代
- RL笔记:基于策略迭代求CliffWaking-v0最优解(python实现)
- Atitit 循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate).
- ML之UliR:利用非线性回归,梯度下降法(迭代十万次)求出学习参数θ,进而求得Cost函数最优值
- CANN算子:利用迭代器高效实现Tensor数据切割分块处理
- python中的enumerate获取迭代元素的下标
- 用迭代算法求解斐波那契数列
- 迭代器支持+=操作符的有哪些容器
- GPT5 可以预期的七大最具变革性:世界上最受欢迎的人工智能的下一次迭代,将如何改变世界?
- 区块链共识机制及其迭代
- C++ Primer 学习笔记_44_STL实践与分析(18)--再谈迭代器【下】
- 没有5年测开经验,还真说不清Python生成器、迭代器、装饰器
- 今年还在点点点的你!技术的迭代更新!你又如何进阶中高级自动化测试工程师?
- Self Organizing Maps (SOM): 一种基于神经网络的聚类算法,本质上感觉和kmeans迭代没啥区别
- 遍历一个Set的方法只有一个:迭代器(interator)。
- 【跟学C++】C++STL三大主要组件——容器/迭代器/算法(Study19)