从文本文件中读取所有列



我正在尝试读取文本文件。我需要读取列值列表。我的文本文件看起来像这样:

40 10 5 5
30 20 10 0
30 30 10 5

,期望输出为

(40,30,30),(10,20,30),(5,10,10),(5,0,5)

我试过这个代码

def contest(filename):
contestFile = open(filename,'r')
contestFileLines=contestFile.readlines()
startColumn = 0
contestResult=[]
for x in contestFileLines:
contestResult.append(x.split()[startColumn])

contestFile.close()
print(contestResult)

contest("testing.txt")

,它的输出就是

['40', '30', '30']

我该怎么办?

尝试将每行读入列表,按每个空格分隔并映射到int。然后,你可以使用这个答案(Barmar在评论中建议的)来转换地图生成器列表。就像这样:

def cols(path):
rows = []
with open(path) as f:
for line in f:
rows.append(map(int, line.split(' ')))
return list(map(list, zip(*rows)))

print(cols('test.txt'))  # => [[40, 30, 30], [10, 20, 30], [5, 10, 10], [5, 0, 5]]

或者,如果需要以元组的形式输出,只需更改这一行:

return list(map(list, zip(*rows)))

return list(map(tuple, zip(*rows)))

相关内容

  • 没有找到相关文章

最新更新