gpt4 book ai didi

python - 从文本文件创建元组

转载 作者:行者123 更新时间:2023-12-03 02:26:55 26 4
gpt4 key购买 nike

我想创建这样的元组:

(num_rows, num_columns, matrix)

示例是:

   (3,5,[['o','x','o','x','o'], ['o','o','o','x','x'], ['o','o','o','o','o']])

从文本文件输入:

3 5
o x o x o
o o o x x
o o o o o

到目前为止我已经厌倦了一些代码:

  file_name = open('input_1.txt', 'r')
inputs= []
for line in file_name:
input= ((line.split('\t')))
inputs.append(input)
file_name.close()

return (tuple(inputs))

最佳答案

试试这个:

def getTuple():
with open('file.txt', 'r') as file:
result = []
matrix = []
result.extend(map(int, file.readline().split()))
for line in file:
matrix.append(line.split())
result.append(matrix)
return tuple(result)


print(getTuple())

输出:

(3, 5, [['o', 'x', 'o', 'x', 'o'], ['o', 'o', 'o', 'x', 'x'], ['o', 'o', 'o', 'o', 'o']])

但是,您的代码正在返回:

(['3 5\n'], ['o x o x o\n'], ['o o o x x\n'], ['o o o o o'])

让我带您了解可能的实现背后的逻辑(这些要点还指出了代码中的问题):

  1. 您需要以不同于文件中其余行的方式读取/处理第一行(它包含行数和列数)。您需要split第一行使用 split() 方法(不传递任何参数,请参阅 this 以了解它有什么区别),然后使用 map()将第一行中的每个元素转换为 int。 map() 返回的对象(Python 3.x 中的映射对象)(请参阅 this 了解有关映射的更多信息)用于扩展列表结果

  2. 其他行需要使用 split() 进行拆分,然后附加到列表矩阵。 for 循环结束后,我们可以将矩阵附加到列表结果中。

  3. 参见this了解有关我用来管理文件资源的语法的更多信息(with open('file.txt', 'r') as file)。

关于python - 从文本文件创建元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60059875/

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