lis中Python中的3x3网格

2024-05-06 13:41:18 发布

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

我有一个从文本文件生成的列表,需要把它放到一个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个单词。我已经有'删除/添加一个单词从列表中取出文本文件。在


Tags: 方法infromimporttxt网格列表for
2条回答

我只是假设所有的话都在一条线上。这样我就可以用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公司公司名称:

^{pr2}$

相关问题 更多 >