2017-02-20 17 views
0

Ich habe von CSV eine Liste von Listen mit dem Namen fileList gelesen [[id, id2, id3], [10,10,11]] Aber ich habe ein Problem, das ich durch die iterieren möchte Liste und in jeder Iteration erstellen Sie eine Turtle, die ID1, ID3 (nicht ID2) als Variablen enthalten. Meine Idee in Python Syntax (Ich brauche Hilfe, um es zu NetLogo transponieren):Netlogo Liste in Liste Iterationen mit Zähler

for x, list in enumerate(fileList): 
     if x==0: #first list is names so I transpose the names to places in 
      index_id=list.index(id) 
      index_id3=list.index(id3) 
     else: 
      create-turtle_nr1 #not in python syntax but the idea is to create turte to assign variables from list below 
      ask turtle_nr1 [set id1 item (item as list[index_id])] 

Gesamtausgabe ist drei Schildkröten mit Variablen-ID und ıd3.

Antwort

1

In diesem Fall sollten Sie einfach item verwenden, um Ihre Listen iterativ zu indizieren. Im Prinzip sollten Sie für jede Schildkröte die entsprechende Liste von Variablen aus der Liste der Listen indizieren und dann die entsprechende Variable von die Liste indizieren.

turtles-own [ 
    id 
    id2 
    id3 
] 

to list-of-lists 

    ;;; these lists are just placeholders, of course, use your real list of lists 
    ;;; as the "ids_list" variable in this case 
    let id1list [ 1 2 3]  
    let id2list [ 44 55 66 ] 
    let id3list [ "a" "b" "c" ] 
    let ids_list (list id1list id2list id3list) 

    let n 0 

    while [ n < 3 ] [ ;;; or however many turtles you end up wanting, 
        ;;; as long as you have list variables for them 
    create-turtles 1 [ 
     set id item n (item 0 ids_list) 
     set id3 item n (item 2 ids_list) 
    ] 
    set n n + 1 
    ] 

end 

Dieses Verfahren schafft drei Schildkröten mit ids von 1, 2 und 3, id2s von 0, und ID3s von a, b und c: Man könnte mit so etwas wie beginnen.

Verwandte Themen