gpt4 book ai didi

python - 如何每行打印几个数组元素到文本文件

转载 作者:太空宇宙 更新时间:2023-11-04 07:02:35 25 4
gpt4 key购买 nike

我有一个一维数组,例如arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, ...] 任意长度。

如何将其打印到文本文件(整数/ float 以空格分隔),以便每 7 个元素都打印在文本文件的同一行上?

所以我希望文本文件看起来像这样:

第 1 行:1 2 3 4 5 6 7

第 2 行:8 9 10 11 12 13 14

最佳答案

您的问题可以分为三个部分:

  1. 如何将任意大小的列表分成特定长度的 block
  2. 如何使用空格作为分隔符打印整数/ float 列表
  3. 如何写入文件

将任意大小的列表分成特定长度的 block

使用 grouper 方法,如 this answer 中所述:

import itertools

def grouper(n, iterable):
it = iter(iterable)
while True:
chunk = tuple(itertools.islice(it, n))
if not chunk:
return
yield chunk

您可以轻松地将任意长度的列表拆分为所需长度的 block 。例如:

>>> arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
>>> for chunk in grouper(7, arr1): print chunk
...
(1, 2, 3, 4, 5, 6, 7)
(8, 9, 10, 11, 12, 13, 14)
(15, 16)

使用空格作为分隔符打印整数/ float 列表

将列表加入字符串的标准方法是使用 string.join() .但是,这仅适用于字符串列表,因此我们需要首先将每个元素转换为其字符串表示形式。这是一种方法:

>>> a = [1, 2, 3, 4]
>>> print " ".join(str(x) for x in a)
1 2 3 4

在前面的例子中使用这个方法,我们得到:

>>> for chunk in grouper(7, arr1):
... print " ".join(str(x) for x in chunk)
...
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16

这几乎就是您想要的输出。现在我们需要做的就是将其写入文件。

写入文件

with open("outfile.txt", "w") as f:
for chunk in grouper(7, arr1):
f.write(" ".join(str(x) for x in chunk) + "\n")

有关详细信息,请参阅 Reading and Writing Files .

关于python - 如何每行打印几个数组元素到文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14941854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com