Как сделать строковый многомерный массив в Python - PullRequest
0 голосов
/ 11 мая 2018

Я работаю над практикой Python, и я столкнулся с ошибкой при попытке применить мое предыдущее понимание PHP многомерных массивов к массивам Python.

maze_path = [
    [
        "You are in a forest looking into the shrubbery while sitting on a plane. Do you decide to check it out?",
        "yes:Walking in.." = [

        ],
        "no:END_GAME" = []
    ]
]

Это массив, который я 'я пытаюсь установить массив с более чем одним разрешением, которое можно перебрать для перехода к следующим областям в зависимости от набора инструкций, которые даны итератору.

Я попытался выполнить свой код и запустилв следующую ошибку (пытался проверить, был ли синтаксис допустимым):

Файл "menu.py", строка 159 "yes: Walking in ..": [^ SyntaxError: неверный синтаксис

Я попытался изменить знак = на :, == (сравнение, работало, но не так, как я ожидал ...) и просто ничего с ним.

То, что я планирую сделать с этим, это итерация на первом уровне массива, что-то вроде этого:

for instruction, resolution in maze_path:
  #// do some stuff with each of these informatants
  manage( instruction, resolution, maze_path )

Затем из этого я выясню еще одну проблему, связанную с перемещениемчерез массив.

Основной вопрос : Могу ли я создавать многомерные массивы на основе строк в Python?

1 Ответ

0 голосов
/ 11 мая 2018

Используйте структуру dict.Вы можете получить доступ к набору (key, value) кортежей с помощью .items() и выполнить итерацию по этим парам:

maze_path = {
    "You are in a forest looking into the shrubbery while sitting on a plane. Do you decide to check it out?":
    {"yes": "Walking in..",
     "no": "END_GAME" 
    }
}

def manage(i, r):
    print("     You chose {}, this happens: {}".format(i, r))

for description, options in maze_path.items():
    print(description)
    for instruction, resolution in options.items():
        manage(instruction, resolution)

Вывод:

You are in a forest looking into the shrubbery while sitting on a plane. Do you decide to check it out?
     You chose yes, this happens: Walking in..
     You chose no, this happens: END_GAME
...