Python 在输出窗口中显示迭代次数
在python中,我试图对大量列表进行排序需要花费很长时间(约15秒)来排序 我想知道是否有任何方法可以向用户指示实时排序的元素数量,而不必为每个完成的迭代打印新行 因此,我们没有:Python 在输出窗口中显示迭代次数,python,list,iteration,Python,List,Iteration,在python中,我试图对大量列表进行排序需要花费很长时间(约15秒)来排序 我想知道是否有任何方法可以向用户指示实时排序的元素数量,而不必为每个完成的迭代打印新行 因此,我们没有: 2300 elements sorted 2301 elements sorted ... 只有一行: x+ elements sorted 如果我把术语弄错了,我提前道歉。 提前感谢您的帮助 编辑:排序算法 def insertionSort(allData, key): for i in range
2300 elements sorted
2301 elements sorted
...
只有一行:
x+ elements sorted
如果我把术语弄错了,我提前道歉。
提前感谢您的帮助
编辑:排序算法
def insertionSort(allData, key):
for i in range(1, len(allData)):
j = i
while j > 0 and allData[j][key] < allData[j-1][key]:
allData[j], allData[j-1] = allData[j-1], allData[j]
j -= 1
def insertionSort(所有数据,键):
对于范围(1,len(allData))中的i:
j=i
而j>0和allData[j][key]
您可以使用Python3中的print函数来完成。将行结尾(Unix上为“\n”,Windows上为“\r\n”)替换为“\r”,回车符。这会将光标移动到屏幕的左侧,但保持在同一行上
import os
x = 1000000
print( "Sorting List:" )
for i in range( 0, x ):
print( str( i ) + "/" + str( x ) + " elements sorted", end='\r' )
对于Python2.x,您可以使用
from __future__ import print_function
获取新的打印功能
在GNOME终端中,打印时光标会闪烁,我认为这会分散注意力,所以我用
os.system('setterm -cursor off')
然后又回来了
os.system('setterm -cursor on')
这可能因系统而异您是使用
sorted(list)
还是list.sort()
或某种自定义排序技术执行排序?因为前者并没有真正公开它们的内部“迭代”,也许应该指定,我正在使用我自己的排序算法如果你可以发布你的算法,请执行我不遵循的soPerhaps,但你的建议似乎仍然会导致成千上万的打印语句