如何在Python中编写列表的浮动列表

时间:2009-05-14 18:16:55

标签: python file-io

我需要将一系列矩阵写入python的纯文本文件中。我所有的matricies都是浮动格式,所以很简单 file.write()和file.writelines()

不行。有没有我可以使用的转换方法没有让我循环遍历所有列表(矩阵=我的情况下的列表列表)转换单个值?

我想我应该澄清一下,它不需要看起来像一个矩阵,只需要一个易于解析的列表中的相关值,我将在稍后阅读。所有在一条线上实际上可以使这更容易!

5 个答案:

答案 0 :(得分:11)

m = [[1.1, 2.1, 3.1], [4.1, 5.1, 6.1], [7.1, 8.1, 9.1]]
file.write(str(m))

如果您想要更多地控制每个值的格式:

def format(value):
    return "%.3f" % value

formatted = [[format(v) for v in r] for r in m]
file.write(str(formatted))

答案 1 :(得分:9)

以下内容适用于我:

with open(fname, 'w') as f:
    f.writelines(','.join(str(j) for j in i) + '\n' for i in matrix)

答案 2 :(得分:5)

为什么不使用pickle

import cPickle as pickle
pckl_file = file("test.pckl", "w")
pickle.dump([1,2,3], pckl_file)
pckl_file.close()

答案 3 :(得分:1)

import pickle

# write object to file
a = ['hello', 'world']
pickle.dump(a, open('delme.txt', 'wb'))

# read object from file
b = pickle.load(open('delme.txt', 'rb'))
print b        # ['hello', 'world']

此时,您可以使用vi

查看文件'delme.txt'
vi delme.txt
  1 (lp0
  2 S'hello'
  3 p1
  4 aS'world'
  5 p2
  6 a.

答案 4 :(得分:1)

表示矩阵中的行:     file.write(“”。join(map(str,row))+“\ n”)

这对我有用......并以矩阵格式写出输出