私は、特定の規則に従ってリストのリストを作成するタスクを持っています。リストは、ルートを持つツリーを表す必要があり、このルートから特定の色で分岐します。各ブランチはその子要素のリストとして表されるべきです(1つの黒いブランチは3つの白を生成し、1つの白ブランチは2つの黒を生成します)。たとえば、root=['black']
、最初のブランチ[['white','white','white']]
、次の反復は[[[black,black],[black,black],[black,black]]]
などである必要があります。リストの無限の入れ子リストを作成する
この無限リストは、グローバル変数に格納する必要があります。出来ますか? このようなリストを生成する私のコードは、あらかじめ決められたステップ数だけそれを行います。
root = ['b']
def change(root):
for index, item in enumerate(root):
if isinstance(item, list):
change(item)
elif item == 'b':
root[index] = ['w','w','w']
elif item == 'w':
root[index] = ['b','b']
return root
for i in range(3):
tree=change(root)
print(tree)
可能な場合はどのように無限リストを生成できますか?あなたの質問のコメントで
実際の無限リストは作成できません。それは有限のリソースなので、十分なメモリがあることは決してありません。 –
メモリ以外にも、リストをネストすることができる深さの制限はありません。 –
@MartijnPietersおそらく、彼は、ある種のパターンに従ったリストの潜在的に無限のリストを生成する*プログラムを書く必要があることを意味します。 – Tagc