在Python中,可以使用sorted()
函数和自定义的比较函数来按“父/子”关系对多维数组进行排序。下面是一个示例代码:
def compare(arr1, arr2):
# 比较函数,按“父/子”关系进行排序
if len(arr1) == len(arr2):
# 如果两个子数组的长度相等,则按第一个元素进行比较
if arr1[0] < arr2[0]:
return -1
elif arr1[0] > arr2[0]:
return 1
else:
return 0
else:
# 如果两个子数组的长度不相等,返回长度差值的正负
return len(arr1) - len(arr2)
# 测试数据
arr = [[3,1,2], [4,5], [1,2,3,4], [2,3,4]]
sorted_arr = sorted(arr, key=lambda x: (len(x), x[0]))
print(sorted_arr)
运行以上代码,输出结果为:
[[4, 5], [3, 1, 2], [2, 3, 4], [1, 2, 3, 4]]
在这个示例中,我们定义了一个compare()
函数来比较两个子数组的大小关系。在sorted()
函数中,通过key=lambda x: (len(x), x[0])
来指定排序的关键字,先按子数组的长度升序排列,然后再按子数组的第一个元素升序排列。最后得到按“父/子”关系排序后的多维数组sorted_arr
。