シンプルなネストされていないタプルを受け取り、動作し、返す関数を書いた。タプルを展開して再パックする(Python 2.x)
例えば:
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,))
に変換する方法があるかどうか疑問に思っていました。
基本的には、一般的な入力タプルをアンパックして処理し、その結果を指定されたものと同じ形にパックすることが必要です。
このようなタスクを達成するためのPythonの方法はありますか?
おそらく、アンパックは再帰で解決できますが、「再パック」の部分についてはわかりません。これは、再梱包のために働く必要が
平滑化部分:https://stackoverflow.com/questions/2158395/flatten-an-irregular-list-of-lists。再パッキング側では、 '((t [0]、t [1]、(t [2])))、(t [3]、))'というタプルを作成するだけです。 – DyZ
して、平坦化部分が実際に再帰的だったように見えます。しかしそれがそうであるように、それはタプルの元の構造についての情報を保持しないでしょう:/ – darkpirate