我正在尝试读取文本文件。我需要读取列值列表。我的文本文件看起来像这样:
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)))