Чтение треугольника чисел в двумерный массив целых чисел в Python - PullRequest
5 голосов
/ 26 апреля 2010

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

75

95 64

17 47 82

18 35 87 10

20 04 82 47 65

...

Код, который у меня есть, следующий:

f = open('input.txt', 'r')
arr = []
for i in range(0, 15):
    arr.append([])
    str = f.readline()
    a = str.split(' ')
    for tok in a:
        arr[i].append(int(tok[:2]))

print arr

У меня есть ощущение, что это можно сделать более жестким, более питонским способом. Как бы вы сделали это?

Ответы [ 2 ]

10 голосов
/ 26 апреля 2010
arr = [[int(i) for i in line.split()] for line in open('input.txt')]
0 голосов
/ 06 апреля 2018

То, о чем я могу думать, было бы ...

    with open(path, 'r') as file:
        line_array = file.read().splitlines()
        cell_array = []
        for line in line_array:
            cell_array.append(line.split())
        print(cell_array)

Небольшое сжатие:

    with open(path, 'r') as file:
        line_array = file.read().splitlines()
        cell_array = [line.split() for line in line_array]
        print(cell_array)

Еще большее сжатие!

    print([[item for item in line.split()] for line in open(path)])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...