Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3:从文件读取并对值进行排序_Python_File_Sorting_Python 3.x - Fatal编程技术网

Python3:从文件读取并对值进行排序

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(

我有一个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(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)