在Python中将数字三角形读入2d数组

时间:2010-04-26 07:21:41

标签: python file

我想使用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

我有一种感觉,这可以用更严格,更Pythonesque的方式来完成。 怎么做?

2 个答案:

答案 0 :(得分:10)

arr = [[int(i) for i in line.split()] for line in open('input.txt')]

答案 1 :(得分:0)

我能想到的方法是......

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