多维数组如何扁平化去重
时间: 2024-09-08 08:01:04 浏览: 74
多维数组扁平化是指将一个多层嵌套的数组结构转换成一层的数组,每项数据都是单独的一条,而去除重复元素则是删除数组中重复的数据项。这里通常有两种常见的方法:
- 使用递归:对于每个子数组,先遍历并添加其所有元素到结果数组,然后递归处理下一个子数组,直到遍历完所有的层级。
def flatten_and_remove_duplicates(arr):
result = []
for i in arr:
if isinstance(i, list): # 检查是否是列表
result.extend(flatten_and_remove_duplicates(i)) # 递归处理
else:
result.append(i) # 非列表直接添加
return list(set(result)) # 使用 set 去除重复,再转回 list
# 示例
arr = [[1, 2], [2, 3], [4, [5, 6]], [5, 6]]
flattened = flatten_and_remove_duplicates(arr)
- 使用迭代和临时集合:每次迭代时检查当前元素是否已经在临时集合中,不在则添加。
def flatten_and_remove_duplicates_2(arr):
flattened = []
seen = set()
for item in arr:
if isinstance(item, list):
flattened.extend(flatten_and_remove_duplicates_2(item))
elif item not in seen:
flattened.append(item)
seen.add(item)
return flattened
# 示例同上
arr = [[1, 2], [2, 3], [4, [5, 6]], [5, 6]]
flattened = flatten_and_remove_duplicates_2(arr)
相关推荐



















