Python 从N个元组中获取所有值
我创建了一个递归函数来显示更大集合中的所有k大小的子集。简单地打印子集是没有问题的,但是如果以后需要使用它们,当我想要返回集合时,我会遇到麻烦 这是启动集[3,5,7,9]的输出Python 从N个元组中获取所有值,python,Python,我创建了一个递归函数来显示更大集合中的所有k大小的子集。简单地打印子集是没有问题的,但是如果以后需要使用它们,当我想要返回集合时,我会遇到麻烦 这是启动集[3,5,7,9]的输出 ((((0, 0), (0, [3, 5])), ((0, [3, 7]), ([3, 9], 0))), (((0, [5, 7]), ([5, 9], 0)), (([7, 9], 0), (0, 0)))) 这只是一个快速的片段,看看输出是什么样子的,它是这样的: a=list1([3,5,7,9],0,0,0
((((0, 0), (0, [3, 5])), ((0, [3, 7]), ([3, 9], 0))), (((0, [5, 7]), ([5, 9], 0)), (([7, 9], 0), (0, 0))))
这只是一个快速的片段,看看输出是什么样子的,它是这样的:
a=list1([3,5,7,9],0,0,0,[],2)
for i in a:
for j in i:
for k in j:
print(k)
由于我想要的列表的索引在不同的元组之间变化,并且您需要到达的深度也会根据起始集的大小而变化,所以我真的不知道如何从输出中仅提取最终列表
list_of_lists=list()
def test_tuple(t): #where t is a tuple
for element in tuple:
if type(element) == type(list()):
list_of_lists.append(element)
elif type(element) == type(tuple()):
test_tuple(element)
由于您已经将输出存储在一个大元组中,因此只需将该大元组传递给test_tuple并声明一个包含所有提取列表的变量。除非你做了一些类似于创建一个无限递归列表的事情,否则这应该可以做到
由于您已经将输出存储在一个大元组中,因此只需将该大元组传递给test_tuple并声明一个包含所有提取列表的变量。除非您执行类似于创建无限递归列表的操作,否则这应该可以做到。我认为您需要一个递归函数,在决定是提取还是深入之前检查每个元素的类型。这是正确的吗?我认为您需要一个递归函数,在决定是提取还是深入之前检查每个元素的类型。这是正确的吗?
list_of_lists=list()
def test_tuple(t): #where t is a tuple
for element in tuple:
if type(element) == type(list()):
list_of_lists.append(element)
elif type(element) == type(tuple()):
test_tuple(element)