我有一个看起来像这样的numpy数组:
[['Apple' 'Banana' 'A']
['Banana' 'Apple' 'A']
['Banana' 'Apple' 'B']
['Banana' 'Apple' 'Z']
['Pear' 'Apple' 'Z']
['Apple' 'Pear' 'A']
['Apple' 'Orange' 'Z']]
我想首先删除重复,无论元素的顺序如何。显示为:
[['Apple' 'Banana' 'A']
['Banana' 'Apple' 'B']
['Banana' 'Apple' 'Z']
['Pear' 'Apple' 'Z']
['Apple' 'Pear' 'A']
['Apple' 'Orange' 'Z']]
已删除:[' Banana' '苹果' ' A']
然后删除所有' Z'当' A'或者' B'元素存在:
[['Apple' 'Banana' 'A']
['Banana' 'Apple' 'B']
['Apple' 'Pear' 'A']
['Apple' 'Orange' 'Z']]
无需维护行顺序。如果它可以在一步中完成,甚至更好。谢谢!
答案 0 :(得分:0)
下面,a
是您的数据阵列:
[list(k) + v for k, v in {tuple(sorted(set(x[:2]))) : [x[2]] for x in a}.items()]
但是,根据您的问题,目前尚不清楚应删除哪些订单商品。例如,你说:"删除:[' Banana' '苹果' ' A&#39]。然后删除所有' Z'当' A'或者' B'元素存在..." 没有删除订单项的逻辑:A,Z,B,......所以,我的代码会以任意顺序删除项目。