我有一个输入文件,如下所示:
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)]








暂无数据