如何将文件中的信息转换为元组

时间:2016-12-03 15:27:35

标签: python

我必须制作一个文件:planets.txt,其中包含有关行星的信息。该文件如下所示:

Planet1 100 200

planet2 200 300

planet3 400 250

我必须在python中编写一个函数,它返回一个包含此信息元组的列表,如下所示:

[(100,200),(200,300),(400,250)]

问题在于我不知道如何编写此功能。有没有人可以帮助我? 非常感谢你!

3 个答案:

答案 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)]