【发布时间】:2018-02-13 04:07:16
【问题描述】:
我编写了一个函数,它接受、工作并返回简单的非嵌套元组。
例如:
myfun((1,2,3,4)):
... -> logic
return (1,2,3,4) -> the numbers can change, but the shape will be the same
由于该逻辑仅适用于单维元组,但在概念上对于每一级嵌套都是相同的。我想知道是否有办法将像((1,2,(3,)),(4,)) 这样的嵌套元组转换为普通的(1,2,3,4),然后将其转换回((1,2,(3,)),(4,))。
基本上我想要的是解压缩一个通用输入元组,使用它,然后将结果打包成与给定一个相同的形状。
有没有 Pythonic 的方式来完成这样的任务?
可能解包可以通过递归解决,但是我不确定“重新打包”部分。
【问题讨论】:
-
展平部分:stackoverflow.com/questions/2158395/…。在重新打包方面,只需构造元组:
((t[0],t[1],(t[2],)),(t[3],))。 -
ty,看起来展平部分确实是递归的。但因为它不会保留有关元组原始结构的信息:/