问题描述
此问题的第一个问题是:如何使用元组的元组调用函数,我的程序应该能够处理任意数量的元组。
第二个问题:我找到了一种方法,但是在我的代码中定义了元组并且它起作用了,所以我需要一个提示,如何在其中包含任意数量的元组的情况下调用函数。
到目前为止,我的代码:
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))