繁体   English   中英

尝试将带有数字的txt文件读入列表,然后使用Python进行排序

[英]Trying to read a txt file with numbers into a list and then sort using Python

我有一个单行的txt文件file1.txt,它具有一系列的10个数字。

10,45,69,85,21,32,11,71,20,30

我想从txt文件中获取这些数字,然后将它们添加到列表中,然后按升序对数字进行排序。

我努力了

myfile1 = open('file1.txt', 'r').readlines()

但这似乎给了我一个长度为1的列表,该列表显然无法排序。

In [101]: myfile1
Out[101]: ['10,45,69,85,21,32,11,71,20,30']

我猜我阅读文本文件的方式有问题,但是我似乎找不到合适的方法。

有点模糊以做1线,但基本上是:

with open('file1.txt', 'r') as f:
    data = sorted(map(int, f.readline().split(',')))

这是做什么的:

  1. 读取1行: f.readline()
  2. ','字符上分割该行: .split(',')
  3. string list map(int, list)int值: map(int, list)
  4. 排序intlistsorted(list)

.readlines()会执行以下操作:逐行读取文件。 在您的示例中,只有一行,因此长度为1。

在这一行中,您需要使用逗号分隔:

with open(file1.txt,'r') as myfile:
    for line in myfile:
        print sorted(map(int, line.split(',')))

或者,如果您有多行包含大量数字:

data = []
with open(file1.txt,'r') as myfile:
    for line in myfile:
        data.extend(map(int, line.split(',')))
print sorted(data)

在这里,我使用with with关键字来打开文件,可以逐行对其进行迭代。 然后,在每一行上使用字符串的split方法,该方法将返回字符串列表。 然后,我通过将int类型转换函数应用于列表中的每个项目,使用map将这些字符串转换为整数。 然后可以对该列表进行排序。 确保查看Python文档上的字符串方法页面

没有输入文件的测试:

numbers = "10,45,69,85,21,7,32,11,71,20,30"
data = []
data.extend(map(int, numbers.split(',')))
print sorted(data)

版画

[7, 10, 11, 20, 21, 30, 32, 45, 69, 71, 85]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM