合并一个元组可将我任意数量的元组填充到一个元组中,然后将其返回

问题描述

此问题的第一个问题是:如何使用元组元组调用函数,我的程序应该能够处理任意数量元组

第二个问题:我找到了一种方法,但是在我的代码中定义了元组并且它起作用了,所以我需要一个提示,如何在其中包含任意数量元组的情况下调用函数

到目前为止,我的代码

def merge(tuples):
    tuples = ((2,3,4),(1,6),(5,1,7))
    largest_tuple = len(tuples[0])
    for i in tuples:
        largest_tuple = max(largest_tuple,len(i))
    new_tuples = []
    for i in range(largest_tuple):
        tup = []
        for j in tuples:
            if i < len(j):
            tup.append(j[i])
    tup.sort()
    new_tuples = new_tuples+tup
    new_tuple = tuple(new_tuples)
    print(new_tuple)

例如:

merge((2,7))

返回:

(1,2,5,6,4,7)

解决方法

使用递归函数:

merged_tuple = [] # Here is where the solution goes

    def merge(tuple_set):
        for value in tuple_set: # Looping over the current tuple
            if type(value) == tuple: # if that value is a tuple
                merge(value) # Perform the function all over again
            else:
                merged_tuple.append(value) # Add the number to the solution set
                
        return tuple(sorted(merged_tuple))