2016-07-14 7 views
-8

私は最近、私の例がツリーであるランダム生成の概念をシミュレートするためにこのプログラムを作成しましたが、なぜランダムに生成された数でリスト内の要素を見つけることができないのか分かりません。私はLeaves.index()を試しましたが、動作していないようです。私のリストの1つからランダムに文字列を取り出して別のリストに追加する方法はありますか?リストから文字列をランダムに選択して新しい文字列に挿入する方法?

import random 

Leaves=["Pointy","Rounded","Maple","Pine","Sticks"] 
Trunk=["Oak","Birch","Maple","Ash","Beech","Spruce"] 
Size=["Extra Large","Large","Medium","Small","Tiny"] 
Tree=[] 
while len(Tree)<len(Leaves)*len(Trunk)*len(Size): 
    NewCombination=Leaves.index(random.randrange(len(Leaves)))+Trunk.index(random.randrange(len(Trunk)))+Size.index(random.randrange(len(Size))) 
if Tree != NewCombination: 
    Tree=Tree+NewCombination 
print(Tree) 

エラー:あなたがランダムな機能の束のリストを作成したいように私が言うことができるものから、

Traceback (most recent call last): File "C:/Users/invis_000/Documents/Coding/Python/Generation.py", line 8, in <module>

+5

リンクの後ではなく、質問自体**に回答可能な情報を含める必要があります。画像リンクはこれに含まれています。他のリンクと同様に、リンクが破損する可能性があります。リンクロットでQ&Aデータベースの一部を無駄にすることは望ましくありません。 –

+0

質問にコードを含める必要があります(そのためには、コードの各行の前に4つのスペースを追加してください)。 –

+1

エディタの '{}'ボタンを使用するか、[各行の前に4つのスペースを追加する](https://stackoverflow.com/editing-help#code)を使用して、ポスト内にコードブロックとしてコードスニペットを含めることができます。 –

答えて

0

、それはそう。私は個人的にこれについて行くような方法は、私たちは私たちが別のリスト

from random import choice 

Leaves=["(Pointy ","(Rounded ","(Maple ","(Pine ","(Sticks "] 
Trunk=["Oak ","Birch ","Maple ","Ash ","Beech ","Spruce "] 
Size=["Extra Large)","Large)","Medium)","Small)","Tiny)"] 
Tree=[] 
NewCombination = [] 

while len(Tree)<len(Leaves)*len(Trunk)*len(Size): 
    NewCombination.append((choice(Leaves)) + (choice(Trunk) + (choice(Size)))) 

    if Tree != NewCombination: 
     Tree=Tree+NewCombination 
print(Tree) 
に含めることができます .appendと呼ばれる機能を使用し、 Choice

選択リストから文字列を選ぶために私たちを可能にランダムな方法を使用することです

元の3つのリストに括弧とスペースを入れて印刷リストを表示するほうがはるかに簡単になりました

関連する問題