2016-07-14 6 views
-8

Ich habe dieses Programm vor kurzem gemacht, um das Konzept der Zufallsgenerierung zu simulieren, wobei mein Beispiel Bäume sind, aber ich verstehe nicht, warum ich kein Element innerhalb der Liste mit einer zufällig erzeugten Zahl finden kann. Ich versuchte Leaves.index(), aber es scheint nicht zu funktionieren. Gibt es irgendwelche Möglichkeiten, eine Zeichenfolge zufällig aus einer meiner Listen zu nehmen und sie in eine andere Liste aufzunehmen?Wie wählt man zufällig eine Zeichenfolge aus einer Liste und fügt sie in eine neue ein?

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) 

Fehler:

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

+5

Fragen müssen genügend Informationen enthalten, um in der Frage selbst ** beantwortbar zu sein **, nicht hinter einem Link. Bildlinks sind darin enthalten - wie bei jedem anderen Link können sie brechen, und wir wollen nicht, dass linkrot Teile unserer Q & A-Datenbank nutzlos macht. –

+0

Sie sollten den Code in die Frage einfügen (dafür fügen Sie einfach 4 Leerzeichen vor jeder Codezeile hinzu), so dass wir sie einfach kopieren/einfügen müssen, um zu sehen, was sie tut. –

+1

Sie können Codeschnipsel als Codebausteine ​​in Ihren Post einfügen, indem Sie die Taste '{}' im Editor verwenden oder [vor jeder Zeile 4 Leerzeichen hinzufügen] (https://stackoverflow.com/editing-help#code). –

Antwort

0

Von dem, was ich sagen kann, es scheint, als ob Sie eine Liste mit einer Reihe von zufälligen Funktionen erstellen möchten. Die Art, wie ich persönlich über diese gehen würde, ist durch die Zufallsmethode Choice

Wahl ermöglicht es uns, einen String aus einer Liste auswählen, dann verwenden wir eine Funktion namens .append, die uns sind sie in einer anderen Liste können

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) 

Ich habe es auch viel einfacher gemacht, die gedruckte Liste durch Klammern und Leerzeichen in Ihren ursprünglichen drei Listen zu sehen

Verwandte Themen