2016-07-14 76 views
-8

我最近做了這個程序來模擬隨機生成的概念,我的例子是樹,但是我不明白爲什麼我無法在隨機生成的數字中找到列表中的元素。我試過Leaves.index(),但它似乎沒有工作。是否有任何方法從我的列表中隨機取一個字符串並將其添加到另一個列表中?如何從列表中隨機選擇一個字符串,並將其插入到新列表中?

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

問題需要包含足夠的信息,以便在問題本身**中可以回答**,而不是在鏈接後面。圖像鏈接包含在其中 - 就像任何其他鏈接一樣,它們可以打破,我們不希望linkrot使我們的問答數據庫的一部分無用。 –

+0

您應該在問題中包含代碼(爲此,只需在每行代碼的前面添加4個空格),以便我們只需複製/粘貼它即可查看它的功能。 –

+1

您可以在編輯器中使用'{}'按鈕或[在每行前添加4個空格](https://stackoverflow.com/editing-help#code)在代碼塊中包含代碼片段。 –

回答

0

從我所知道的,好像你想創建一堆隨機特性的列表。我會親自去了解這個問題的方法是使用隨機方法Choice

選擇允許我們從列表中選擇一個字符串,然後我們用一個叫做.append功能,可以讓我們將其包含在另一個列表

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) 

我還通過在原來的三個列表中包含括號和空格來更容易地看到打印列表

相關問題