我有三个字符串,每个字符串中有361个数字。我需要做的是将字符串打印到文本文件中的三个单独的列中。
a = [1,2,3,4,5]
b = [1,2,3,4,5]
c = [1,2,3,4,5]
变为
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
答案 0 :(得分:1)
由于它们的长度都相同,所以非常简单:
ll = [a, b, c]
length = 361
with open("file.txt", "w") as output:
for i in range(length):
output.write(" ".join([str(l[i]) for l in ll]) + "\n")
首先,您将所有列表放在列表中以便于访问。然后,对于每个索引,使用空格作为分隔符,将每个列表中的每个项目与该索引组合成一个字符串。我在创建字符串的行中包含str()
,以避免由于列表中项目的类型而导致错误。
答案 1 :(得分:1)
如果你可以使用numpy
A = np.array([a,c,b]).transpose()
np.savetxt('output.txt',A)
答案 2 :(得分:1)
zip
将列表放在一起,然后遍历生成的元组。
for t in zip(a, b, c):
print(*t)
答案 3 :(得分:0)
你可以将所有列表按元素列入" tuple"
的一个列表zip(a,b,c)
结果将如下所示:[(1,1,1),(2,2,2),...] 然后你可以"映射"来自" tuple"的结果to" string"
map(lambda tup: "%s %s %s" % tup, zip(a,b,c))
Pythonically,
["%s %s %s" % tup for tup in zip(a,b,c)]
现在您将获得一个字符串列表。然后你现在可以写入文件了。为了使其成为多线,我们需要' \ n'焦炭。我们可以使用方便的"加入"函数加入列表并用换行符分隔它们。
所以我的解决方案会是这样的:
a = [1, 2, 3, 4, 5]
b = [1, 2, 3, 4, 5]
c = [1, 2, 3, 4, 5]
with open("targetfile.txt", "w") as f:
f.write("\n".join(["%s %s %s" % tup for tup in zip(a,b,c)]))
答案 4 :(得分:0)
尝试这种方法:
a = [1, 2, 3, 4, 5]
b = [1, 2, 3, 4, 5]
c = [1, 2, 3, 4, 5]
print(list(zip(a,b,c)))
输出:
[(1, 1, 1), (2, 2, 2), (3, 3, 3), (4, 4, 4), (5, 5, 5)]