python - 从 N 个元组中获取所有值
问题描述
我创建了一个递归函数来显示更大集合中的所有 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,[],2)
for i in a:
for j in i:
for k in j:
print(k)
(0, 0)
(0, [3, 5])
(0, [3, 7])
([3, 9], 0)
(0, [5, 7])
([5, 9], 0)
([7, 9], 0)
(0, 0)
由于我想要的列表的索引从一个元组变为另一个元组,并且您需要去的深度也根据起始集的大小而变化,我真的不知道如何只从中提取最终列表输出。
解决方案
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 并声明一个包含所有提取列表的变量。除非您执行诸如创建无限递归列表之类的操作,否则这应该可以解决问题。
推荐阅读
- python - 如何为类实例变量赋值?
- regex - 正则表达式:“AND OR”返回两组,“ANDOR”不返回组
- ruby-on-rails - 无法保存其他表中的数据。Ruby on Rails 5
- php - Laravel Eloquent 检查先前的急切负载关系
- excel - 使用 VBA (excel) 自动复制和粘贴整行
- html - 使用 perl 进行 HTML 解析摆脱内联 css 样式
- html - 如何检查按钮是否有焦点?
- selenium-webdriver - 如何将 WebElement 元素转换为字符串,以便能够在 driver.findElement(By.xpath(element)); 中传递它?
- python - 在其他列表范围内创建的列表
- android - 带有 RxJava 的 MVVM 没有 DataBinding