2017-02-20 2 views
0

Я прочитал из csv список списков с именем fileList [[id, id2, id3], [10,10,11]] Но у меня проблема, что я хочу повторить список и на каждой итерации создают черепаху, которые содержат id1, id3 (не Id2) в качестве переменных. Моя идея в синтаксисе Python (мне нужна помощь, чтобы перенести его в NetLogo):Netlogo список в списке итераций с счетчиком

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])] 

Общий выход три черепахи с переменными Ид и id3.

ответ

1

В этом случае вы должны просто использовать item, чтобы индексировать свои списки итеративно. По сути, для каждой черепахи вы хотите, чтобы он индексировал соответствующий список-переменные из списка списков, а затем проиндексировал соответствующую переменную от , которая находится в списке. Вы могли бы начать с чем-то вроде:

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 

Эта процедура создает три черепахи с идентификаторами 1, 2 и 3, id2s 0, а id3s а, Ь и с.

Смежные вопросы