C#删除元素并重新排序

时间:2018-08-20 16:20:12

标签: c#

我有一个主要收藏品

List<int> main = Enumerable.Range(0,11).ToList();

我有3个列表:

List<int> a = new List<int>{main[0],main[1],main[5],main[3]}; //I delete this list with all its items from the main
List<int> b = new List<int>{main[2],main[6],main[7]};
List<int> c = new List<int>{main[8],main[9],main[4],main[11],main[10]};

现在,我要从列表中删除,然后完全删除 a 列表,因此,我将删除 a 列表喜欢更新 bc

含义是:

List<int> main = new List<int> {0,1,2,4,5,6,7};

List<int> b = new List<int>{main[0],main[2],main[3]};
List<int> c = new List<int>{main[4],main[5],main[1],main[7],main[6]};

我是否需要某种映射,也许以前有人遇到过类似的问题?

也许此屏幕截图演示了我想做的更好的事情: 之后,我必须更新b和c集合

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以使用Linq的{​​{1}}函数。

Except

答案 1 :(得分:0)

不清楚要做什么,但是可以使用LINQ惰性评估来实现类似的目的。您不能使用硬编码的索引来做您想做的事情。您需要使用过滤器和LINQ方法。

test.groupby('ID',as_index=False).agg(lambda x : x.mode()[0] if x.nunique()==1 else np.nan)
Out[372]: 
   ID   val1  val2  val3
0   4    one    hi   3.0
1   5    one   bye   3.0
2   6    NaN  hola   4.0
3   7  seven   NaN   NaN