Как создать матрицу из заданного текстового файла? - PullRequest
0 голосов
/ 10 ноября 2019

Я работаю над простой игрой в лабиринт, где в матрице должна быть какая-то карта лабиринта. Мне дан текстовый файл без пробелов, и я хочу создать из него матрицу.

Это то, что я уже пробовал:

txt = open('matrix.txt')
matrix = []
for line in txt:
    for character in line:
        matrix.append(character.split())

Например, мой текстовый файл выглядит так:

xxxxx
xS--x
xx-Fx
xxxxx

Итак, если я напишу matrix[1][1]Я хочу, чтобы моя программа возвращала S, но это не так, потому что я, вероятно, не создавал матрицу.

Заранее большое спасибо.

Ответы [ 2 ]

0 голосов
/ 10 ноября 2019

Вот как можно достичь своей цели:

txt = open('matrix.txt')
matrix = []
for line in txt:
    line_list = [l for l in list(line) if l != '\n']
    matrix.append(line_list)

print(matrix)
print(matrix[1][1])

Вывод

[['x', 'x', 'x', 'x', 'x'], ['x', 'S', '-', '-', 'x'], ['x', 'x', '-', 'F', 'x'], ['x', 'x', 'x', 'x', 'x']]
S

ОБНОВЛЕНИЕ: список-понимание прост. Но есть и другой способ достичь своей цели.

for line in txt:
line_list = []
for l in list(line):
    if l != '\n':
        line_list.append(l)
    matrix.append(line_list)

print(matrix)
print(matrix[1][1])

Выход

[['x', 'x', 'x', 'x', 'x'], ['x', 'S', '-', '-', 'x'], ['x', 'x', '-', 'F', 'x'], ['x', 'x', 'x', 'x', 'x']]
S
0 голосов
/ 10 ноября 2019

Вы можете попробовать следующий метод:

    txt = open('matrix.txt')
    matrix = []
    for line in txt:
        matrix.append([])
        for character in line:
            if (character != "\n"):
                matrix[-1].append(character)

Я не уверен, что это лучший способ сделать это, но тем не менее, он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...