Python 3.4对测试文件中的列表或元组的操作
我要解决的问题是: 打开一个.txt文件,其中包含任意形式的整数对,即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
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
没有错误检查,相当暴力,但它的工作原理,如“当我尝试时,我得到了正确的输出…”
它是如何工作的
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]
>>>