Python3:从文件读取并对值进行排序
我有一个txt文件,其中包含以下格式的数据:Python3:从文件读取并对值进行排序,python,file,sorting,python-3.x,Python,File,Sorting,Python 3.x,我有一个txt文件,其中包含以下格式的数据: 13 56 9 32 99 74 2 每个值位于不同的文件中。我创建了三个函数: 第一个是交换值 def交换(lst、x、y): 温度=lst[x] lst[x]=lst[y] lst[y]=温度 第二个功能是对值进行排序: def选择_排序(lst): 对于范围(0,透镜(lst)-1)内的x: 打印(lst) 交换(lst,x,findMinFrom(lst[x:])+x) 第三个功能是从列表中查找最小值: def findMinFrom(
13
56
9
32
99
74
2
每个值位于不同的文件中。我创建了三个函数:
第一个是交换值
def交换(lst、x、y):
温度=lst[x]
lst[x]=lst[y]
lst[y]=温度
第二个功能是对值进行排序:
def选择_排序(lst):
对于范围(0,透镜(lst)-1)内的x:
打印(lst)
交换(lst,x,findMinFrom(lst[x:])+x)
第三个功能是从列表中查找最小值:
def findMinFrom(lst):
minIndex=-1
对于范围(0,len(lst))内的m:
如果minIndex==-1:
minIndex=m
elif lst[m]
现在,我如何从包含数字的文件中读取并按顺序打印它们
提前谢谢
我用过:
def main():
f = []
filename = input("Enter the file name: ")
for line in open(filename):
for eachElement in line:
f += eachElement
print(f)
selectionSort(f)
print(f)
main()
但还是不行!有什么帮助吗?要读取文件中的所有行:
f = open('test.txt')
your_listname = list(f)
分类打印
selection_sort(output_listname)
print(output_listname)
排序/打印之前,可能需要去除换行符
stripped_listname=[]
for i in your_listname:
i = i.strip('\n')
stripped_listname.append(i)
您可能还想将print语句从排序函数中删除,这样它在排序时就不会多次打印列表。优秀的程序员不会重新发明轮子,也不会使用大多数现代语言中标准的排序例程。你可以做:
with open('input.txt') as fp:
for line in sorted(fp):
print(line, end='')
打印按字母顺序排序的行(作为字符串)。及
以数字排序。请阅读并应用帮助->教程。它表示“没有闲聊”,尽管你的帖子包含“提前感谢”,但你的交换函数有一个多余的
temp
变量,它的主体可以写在一行中lst[x],lst[y]=lst[y],lst[x]
,为什么要把它弄得这么复杂呢?Anthon,我知道这一行,但不推荐使用,因为它只存在于python中,所以对我这个程序员来说,这实际上是一种不好的做法。这种错误信息来自哪里?在Python创建之前,我在Occam2中使用了并行赋值。在一个非详尽的列表中列出了10种编程语言,它们可以通过名称来实现。Knells,我应该在main函数中实现吗?我还使用了输入功能,用户可以选择他们想要的文件,所以:f=input(“文件名:”)我只需要做一次,主功能非常好。不要把它放在你发布的任何函数中。f=open(输入(“文件名:”)将从具有输入文件名的文件中获取数据。Monica,我无法使用任何内置python排序函数来完成此分配。我的想法是创建一个函数来实现这一点,我做了一个。现在,如何使用排序功能对文件中的数字进行排序?@r4b:有两个独立的任务:从文件中读取数字,对数字进行排序。一次解决一个问题(分而治之)。如果你想知道如何从文件中读取数字;暂时忘记排序,学习如何读取数字。您的选择\u sort();要解决这个问题,请忘记从文件中读取数字,而是学习如何对整数列表进行排序。一旦你完成了独立的任务;您可以将它们结合起来(有时它可以简化事情或使代码更高效,但现在可以忽略它)我的选择_sort()进行排序,我自己测试它!
with open('input.txt') as fp:
for val in sorted(map(int, fp)):
print(val)