0

谁能帮我解决以下问题。我有一项任务,我需要将 txt 文件中的数字从最低值到最高值进行排序。无论数字组合或文本长度如何,都需要将数字从低到高排序。任何帮助将不胜感激。

文本文件 (input.txt)

分钟:2,1,4,3,6,5

最大:1,2,3,4,5,6

平均:1,2,3,4,5,6

我写了一些代码如下,但它只是按字母顺序排列行标题

inputFile = open("input.txt", 'r')
lineList = inputFile.readlines()
lineList.sort()
print (lineList)
for line in lineList:
    print(line)
    with open('inputcopy.txt', 'a') as f:
        for line in lineList:
            lineList.sort()
            f.write(line)

感谢您的任何帮助

4

2 回答 2

1

由于您正在从 读取数据file,因此我们将每一行都作为字符串。因此,您需要split在组合int构造函数中使用方法。

这可以使用列表推导来实现。

for line in lineList:
    numbers = [int(item) for item in line.split(':')[1].split(',')]

line.split(':')[1]作为字符串给出2,1,4,3,6,5

另一个逗号分隔符split为我们提供了. 我使用了构造函数,因为在方法之后我们有它们像.numbersintsplitstrings

于 2020-02-04T06:53:02.873 回答
0

你可以使用正则表达式。请注意,您需要转换为 int 或使用考虑整数表示的自定义函数

for line in lineList:
   sorted_line = sorted(map(int, re.findall(r'\d+',line)))


for line in lineList:
   sorted_line = sorted(re.findall(r'\d+',line), key=lambda x:int(x))
于 2020-02-04T06:56:38.787 回答