我在一个列表中有多个列表。
l = [[1,2,3,4,5,6],
[1,1,3,4,5,6],
[1,4,3,4,5,6],
[1,2,3,2,5,6],
[1,4,3,2,5,6],
[1,2,3,2,7,6],
[1,2,3,5,5,6],
[1,1,3,5,5,6],
[1,2,3,4,5,6],
[1,7,3,4,5,6]]
我想根据(第 4 个和第 5 个)值的子列表的重复值删除列表。
例如:在子列表中,第 4 个和第 5 个元素是 4&5。我想检查其他列表中的重复 4&5。删除重复的。(与 2&5,5&5,4&5 相同)
我期待的输出是:
[[1,2,3,4,5,6],
[1,2,3,2,5,6],
[1,2,3,2,7,6],
[1,2,3,5,5,6]]
我不想使用 numpy。因为它在 while 循环中花费了很多时间。我想使用正常的方法。
这只是例子。我有这样的大数据文件。我想使用 a.any() 方法。如何使用 a.any() 方法解决此问题。
请帮忙!!
您可以在不使用任何外部模块的情况下尝试这样的操作,只需一个循环:
数据是:
your_data = [[1,2,3,4,5,6],
[1,1,3,4,5,6],
[1,4,3,4,5,6],
[1,2,3,2,5,6],
[1,4,3,2,5,6],
[1,2,3,2,7,6],
[1,2,3,5,5,6],
[1,1,3,5,5,6],
[1,2,3,4,5,6],
[1,7,3,4,5,6]]
一行解决方案:
result={}
[result.__setitem__((item[3],item[4]),item) for item in your_data if (item[3],item[4]) not in result]
print(result.values())
详细解决方案:
result={}
for item in your_data:
if (item[3],item[4]) not in result:
result[(item[3],item[4])]=[item]
print(result.values())
输出:
dict_values([[[1, 2, 3, 4, 5, 6]], [[1, 2, 3, 2, 7, 6]], [[1, 2, 3, 2, 5, 6]], [[1, 2, 3, 5, 5, 6]]])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句