Python 3.4对测试文件中的列表或元组的操作

Python 3.4对测试文件中的列表或元组的操作,python,Python,我要解决的问题是: 打开一个.txt文件,其中包含任意形式的整数对,即 2,4 10,24 (2,4) (10,24) 或 [(2,4),(10,24)] 或 [(2,4),(10,24)] 作业是计算所有对的乘积并将它们相加。所以对于测试列表,它将是(2*4)+(10*24) 我真的不知道从哪里开始,什么是最有效的方式把对文本文件?用空格、逗号分隔,是否将其作为嵌套列表 我试过压缩、创建列表等等 with open("txtfile.txt","r") as f: for line i

我要解决的问题是:

打开一个.txt文件,其中包含任意形式的整数对,即

2,4
10,24
(2,4)
(10,24)

[(2,4),(10,24)]

[(2,4),(10,24)]
作业是计算所有对的乘积并将它们相加。所以对于测试列表,它将是
(2*4)+(10*24)

我真的不知道从哪里开始,什么是最有效的方式把对文本文件?用空格、逗号分隔,是否将其作为嵌套列表

我试过压缩、创建列表等等

with open("txtfile.txt","r") as f:
for line in f:
    (list(line.split()))
返回

['2,4']
['10,24']
这是一个比较有组织的结果,没有过多的
'
符号

如何将列表中的元素表示为单独的整数而不是字符串?那我该怎么走呢?循环是否可以解决问题


这是家庭作业。

您不需要使用
列表
,首先需要使用
拆分行,然后使用
映射
int
函数为每个数字获取一个int列表,并使用
求和
函数添加多个项目,在本例中,我还使用:

txtfile.txt:

2,4
10,24
没有错误检查,相当暴力,但它的工作原理,如“当我尝试时,我得到了正确的输出…”

它是如何工作的

  • 元素列表el在第二行中准备好,首先我在每行(模拟)输入上用逗号分隔,然后我去掉所有不合适的语法并将结果转换成整数
  • 在下一行代码中,对于我成对打包的每一行输入(使用内置的
    zip
    )当前整数列表中的奇数和偶数元素,我将成对数据解压为变量
    I
    j
    ,以他们的乘积为例,这个乘积序列被输入到内置的
    sum
    函数中,我最终打印它的结果 不可避免的一行
    许多复杂的情况都是由于需要将行分隔开。

    看起来这两行都是逗号分隔的。如果我是正确的,通过重复使用
    split
    strip
    。。。阅读
    条带的文档
    ,它比大多数人的假设做得更多
    >>> a = '''2,4
    10,24                                                 
    (2,4)                                                
    (10,24)
    [(2,4),(10,24)]'''
    >>> for l in a.split('\n'):
    ...    el = [int(e.strip('[]()')) for e in  l.split(',')]
    ...    print sum([i*j for i,j in zip(el[::2],el[1::2])])
    8
    240
    8
    240
    248
    >>> 
    
    >>> [sum(j*k for j,k in zip(i[::2],i[1::2])) for i in  [[int(e.strip('[]()')) for e in l] for l in [l.split(',') for l in a.split('\n')]]]
    [8, 240, 8, 240, 248]
    >>>