python 遍历集合并删除 用什么数据结构

 我来答
司马刀剑
高粉答主

2018-01-03 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7231万
展开全部
在遍历数据结构的时候,是不可以修改原数据结构的。不然就会抛出错误。

我常用的解决办法是做一份拷贝,遍历这个拷贝。(如果数据不是很大的话)

比如,这个代码:

C#代码
1.<SPAN style="FONT-SIZE: x-small">IDictionary<int, string> ht = new Dictionary<int, string>();
2.ht.Add(1, "one");
3.ht.Add(2, "two");
4.
5.// Print "one,two"
6.Console.WriteLine(String.Join(",", ht.Values.Select(i => i.ToString()).ToArray()));
7.
8.foreach (int key in new List<int>(ht.Keys)) {
9. if (key == 1) ht.Remove(key);
10.}
11.
12.// Print "two"
13.Console.WriteLine(String.Join(",", ht.Values.Select(i => i.ToString()).ToArray()));</SPAN>
IDictionary<int, string> ht = new Dictionary<int, string>();
ht.Add(1, "one");
ht.Add(2, "two");

// Print "one,two"
Console.WriteLine(String.Join(",", ht.Values.Select(i => i.ToString()).ToArray()));

foreach (int key in new List<int>(ht.Keys)) {
if (key == 1) ht.Remove(key);
}

// Print "two"
Console.WriteLine(String.Join(",", ht.Values.Select(i => i.ToString()).ToArray())); 我在遍历的时候,做了一份拷贝。代码是 new List<int>(ht.Keys),用到了 List 的构造拷贝函数,
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式