读取文件作为元组的元组列表

时间:2020-11-08 20:27:11

标签: python list tuples readfile

我想使用Python读取文本文件。我的列表必须是这样的:

    mylist = [((5., 10.), (6.4, 13)),
              ((7., 11.), (5.6, 5.)),
              ((4., 5.67), (3.1, 2.)),
              ((13., 99.), (3.2, 1.1))]

我的文本文件是:

    text file: 5., 10., 6.4, 13.
               7., 11., 5.6, 5.
               4., 5.67, 3.1, 2.
               13., 99., 3.2, 1.1

python代码是:

    with open('test.txt') as f:
      mylist = [tuple((tuple(map(float, i.split(','))))) for i in f]
    print(mylist)

我的结果:

    [(5.0, 10.0, 6.4, 13.0), (7.0, 11.0, 5.6, 5.0), (4.0, 5.67, 3.1, 2.0), (13.0, 99.0, 3.2, 1.1)]

非常感谢

3 个答案:

答案 0 :(得分:0)

您可以再走一步:

lst = [(5.0, 10.0, 6.4, 13.0), (7.0, 11.0, 5.6, 5.0), (4.0, 5.67, 3.1, 2.0), (13.0, 99.0, 3.2, 1.1)]
lst2 = [(tt[:2],tt[2:]) for tt in lst]

print(lst2)

输出

[((5.0, 10.0), (6.4, 13.0)), ((7.0, 11.0), (5.6, 5.0)), ((4.0, 5.67), (3.1, 2.0)), ((13.0, 99.0), (3.2, 1.1))]

答案 1 :(得分:0)

您需要将行分为两个独立的元组。将async Task<IViewComponentResult> InvokeAsync更改为此即可:

mylist

答案 2 :(得分:-1)

这是代码:

mylist = []

for line in open('test.txt', 'r'):
    floats = [float(x) for x in line.split(',')]
    mylist.append(((floats[0], floats[1]),(floats[2], floats[3])))

print(mylist)
>>> [((5.0, 10.0), (6.4, 13.0)), ((7.0, 11.0), (5.6, 5.0)), ((4.0, 5.67), (3.1, 2.0)), ((13.0, 99.0), (3.2, 1.1))]
相关问题