再帰リストは、一連のペアで表されます。各ペアの最初の要素はリスト内の要素で、2番目の要素はリストの残りの部分を表すペアです。最後のペアの2番目の要素はNoneで、リストが終了したことを示します。ネストされたタプルリテラルを使ってこの構造体を構築することができます。例:タプルおよび再帰リスト変換
(1、(2、(3、(4、なし))))
これまでのところ、私は変換メソッドを作成しました値の組または値Noneを対応するrlistに追加します。このメソッドはto_rlist(items)と呼ばれます。例:
rlistを入力として受け取り、対応するタプルを返す関数to_rlistの逆数を書くにはどうすればよいですか?このメソッドはto_tuple(パラメータ)を呼び出す必要があります。何が起こるかの例:
>>> x = to_rlist((1, (0, 2),(), 3))
>>> to_tuple(x)
(1, (0, 2),(), 3)
注:to_rlistメソッドは意図したとおりに動作します。
これは私がこれまで持っているものです。
def to_tuple(L):
if not could_be_rlist(L):
return (L,)
x, y = L
if not x is None and not type(x) is tuple and y is None:
return (x,)
elif x is None and not y is None:
return ((),) + to_tuple(y)
elif not x is None and not y is None:
return to_tuple(x) + to_tuple(y)
(間違っていた)私に次のような結果を与える:私は適切にネストされたタプルを返すように私の方法を修正することができますどのように
>>> x = to_rlist((1, (0, 2),(), 3))
>>> to_tuple(x)
(1, 0, 2,(), 3)
?
再帰的なリストは、自分自身への参照を含むものです。 – wim
@wim「それ自身の観点から定義されたリスト型」を意味する可能性もあります。 (これはおそらく割り当てが使用する用語でもあり、それが残り得る別の理由です)。 – millimoose
@ user1140118:スタックオーバーフローは「私の宿題」のサイトではありません。あなたは自分でこの機能を使い始めるべきですし、あなたが持っている*具体的な問題についての質問を投稿してください。 – millimoose