如何读取二维整数数组?

2024-04-25 23:11:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python还不熟悉。我想从文本文件中读取一个二维整数数组,文件中每行一行,数字用逗号分隔。这样做有效:

s = f.read()
ss = s.splitlines()
mx = []
for i in range(0,len(ss)):
    mx.append([])
    for s1 in ss[i].split(','):
        mx[i].append(int(s1))

有没有更简单的方法?你知道吗


Tags: 文件inforreadrange数字整数数组
2条回答

使用嵌套列表:

with open(filename) as f:
    mx = [[int(x) for x in line.split(',')] for line in f]

或用map列出理解:

mx = [map(int, line.split(',')) for line in f]

注意,在python3中,您需要在map附近额外调用list()。你知道吗

如果NumPy可用:

>>> import numpy as np
>>> mx = np.loadtxt(filename, delimiter=',', dtype=int).tolist()

有一个用于读取逗号分隔文件(^{})的内置模块:

import csv
mx = [map(int, row) for row in csv.reader(open(filename))]

另外,如果您计划使用此数组进行计算,您可能会发现安装和使用^{}很有用:

import numpy
mx = numpy.loadtxt(filename, delimiter=',', dtype=int)

mx现在将是^{},而不是列表列表。你知道吗

相关问题 更多 >