如何使用python从文本文件中对键进行排序

时间:2017-03-07 02:52:56

标签: python python-2.7 sorting

我有一个文本文件,在文本文件中包含这样的数字:

7.2: 2
7.3: 2
6.5: 2
6.4: 6
6.3: 2
7.7: 2
6.1: 3
7.5: 1
7.8: 4
7.9: 1
6.9: 3
6.8: 4
10.1: 8
10.0: 9
10.3: 7
10.2: 10
10.5: 13
10.4: 18
10.7: 8

我想要的是仅使用键对它们进行排序。我无法将它们附加到字典中并仅使用键对其进行排序。这就是我尝试过的。

def sorting():
    file = open(r'test.txt', 'r')
    text = file.read().split()
    keys = {}
    for num in text:
        if num not in keys:
            keys.append(num)
            keys.sort(key=float)
    json.dump(keys, open('test1.txt', 'r')

sorting()

1 个答案:

答案 0 :(得分:0)

您可以读取这些行,将它们在冒号上拆分为元组,使用第二个值对它们进行排序,然后将它们写入输出文件。

示例代码:

with open('input.txt', 'r') as in_file:
  lines = sorted((l.split(": ") for l in in_file.readlines()), key=lambda l: float(l[0]))
  with open('output.txt', 'w') as out_file:
    for line in lines:
       out_file.write(": ".join(line))