2024-05-06 13:41:18 发布
网友
我有一个从文本文件生成的列表,需要把它放到一个3x3网格中。我尝试过多种方法,但它们似乎都是针对Python的旧版本。在
with open("words.txt") as f: #open/import words from words.txt words = [x.strip() for x in f] #add to list
就是我要从文本文件中添加单词到列表中的内容。文件中有10个单词,显示9个单词。我已经有'删除/添加一个单词从列表中取出文本文件。在
我只是假设所有的话都在一条线上。这样我就可以用readline()读取行,拆分并切掉第一个元素。如果我想要前9个,我可以说[:9],或者很明显是从有更多文本的行中提取的其他片段。在
import numpy as np with open('filename.txt', 'r') as fp: words = fp.readline().split()[1:] threebythree = np.array(words).reshape((3,3))
但我想展示的是,你所做的实际上是重塑矩阵,这可以用numpy这样的工具箱来完成。首先将列表读入一个数组(一个9维的1D数组),然后用上面的命令将其重塑为3,3。本例中的“单词”列表保持不变,以便在需要时进行进一步处理。在
不确定你想要的是最后九个还是前九个,如果你想要前九个去掉第一个下一个(f),我假设每个单词都在一个单独的行上:
with open("words.txt") as f: #open/import words from words.txt next(f) # skip first? words = [[next(f).strip() for _ in range(3)] for _ in range(3)]
或使用itertools.islice公司公司名称:
我只是假设所有的话都在一条线上。这样我就可以用readline()读取行,拆分并切掉第一个元素。如果我想要前9个,我可以说[:9],或者很明显是从有更多文本的行中提取的其他片段。在
但我想展示的是,你所做的实际上是重塑矩阵,这可以用numpy这样的工具箱来完成。首先将列表读入一个数组(一个9维的1D数组),然后用上面的命令将其重塑为3,3。本例中的“单词”列表保持不变,以便在需要时进行进一步处理。在
不确定你想要的是最后九个还是前九个,如果你想要前九个去掉第一个下一个(f),我假设每个单词都在一个单独的行上:
或使用itertools.islice公司公司名称:
^{pr2}$相关问题 更多 >
编程相关推荐