我正在尝试读取包含浮点数的文件,然后我将其排序并打印到屏幕上。我已经能够在程序中包含的列表中执行此操作,因此我假设如果我可以读取文件并将数据输入到列表中,那么我可以对其进行排序。数据以逗号分隔,因此我不确定是否应该使用CSV库。 这是我的代码段:
print "Program to read numbers from file and sort"
mylist=open ("numbers.txt").readlines()
sorted (mylist)
print (mylist)
程序输出似乎根本没有排序。我确实尝试使用.splitlines(“'”)但它会导致错误。
答案 0 :(得分:4)
sorted()
只返回列表的排序版本。要就地更改列表,请使用list.sort()
:
print "Program to read numbers from file and sort"
mylist=open ("numbers.txt").readlines()
mylist.sort()
print (mylist)
如果您确实需要所有浮点数的列表,请改用.read()
并给.sort()
一个键:
mylist = open("numbers.txt").read().split(",")
mylist.sort(key=float)
如果你想要文件中的一堆子列表:
mylist = open("numbers.txt")
mylist = [sorted(line.split(","), key=float) for line in mylist]