我必须制作一个文件:planets.txt,其中包含有关行星的信息。该文件如下所示:
Planet1 100 200
planet2 200 300
planet3 400 250
我必须在python中编写一个函数,它返回一个包含此信息元组的列表,如下所示:
[(100,200),(200,300),(400,250)]
问题在于我不知道如何编写此功能。有没有人可以帮助我? 非常感谢你!
答案 0 :(得分:1)
或许这样的事情?
ret = []
lines = open('file.txt').readlines()
for line in lines:
name, first, second = line.split(' ')
ret.append((int(first), int(second)))
答案 1 :(得分:1)
您需要拆分文件的每一行,并将每个结果列表的第二项和第三项的元组附加到res
列表,如下所示:
res = []
with open('planets.txt', 'r') as f:
for line in f:
if line.split(): # I add this because from your input, seems that your file contains some blank lines!
res.append(tuple(line.split()[1:]))
<强>输出:强>
>>> res
[('100', '200'), ('200', '300'), ('400', '250')]
您可以将每个元组的项目转换为这样的整数:
>>> [tuple(map(int, item)) for item in res]
[(100, 200), (200, 300), (400, 250)]
答案 2 :(得分:1)
如果您正在寻找紧凑的代码。
f = open('your_file_path').readlines()
print [tuple(map(int,a.split()[1:])) for a in f if a != '\n']
输出:
[(100, 200), (200, 300), (400, 250)]