热线电话:13121318867

登录
2019-01-28 阅读量: 731
输入行必须转换为元组

我有一个输入文件,如下所示:

4 * 2 ^ 3 + 4 ^ 1

2 * 1 ^ 2 + 2 ^ 3

而且可能会有更多的线条。我需要做的是提取*符号之前的值,所以对于第一行是4。然后我需要创建一个元组g = [(2,3),(4,1)],所以元组对由它们分开+,然后由它们自己分开^。

my_input = open('input.txt').readlines()

lines = [str(line) for line in

open('input.txt','r').read().split('\n')]

per_line = str(lines[0]).split('*')

x = int(per_line[0])

terms = str(per_line[1].split('+'))

现在,如果print terms我得到了['2 ^ 3 ', ' 4 ^ 1'],如果print x我得到了4,那么这似乎有效。但是现在我需要以所描述的元组形式获取这些值。如果我再次分裂,'^'我不会得到所需的结果,但相反["['2 ", " 3 ', ' 4 ", " 1']"],这是不可行的。我试过了factors = str(terms.split('^'))。

此外,我需要将其作为迭代,因此它适用于所有行,但我可以稍后执行此操作。我首先要确保它适用于第一行。

有什么建议?

解决办法:

import re

x = []

g = []

with open('input.txt') as infile:

for line in infile:

nums = re.split(r'[\*\^\+]', line)

x.append(int(nums[0]))

g.append((int(nums[1]), int(nums[2])))

print(x) # [4, 2]

print(g) # [(2, 3), (1, 2)]

0.0000
4
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子