格式化包含字典项的 python 打印输出时出现问题

Problem with formatting a python print output that includes dictionary items

我正在尝试对三种不同排序算法的性能进行基准测试。我想在我的终端上打印结果。

这是我使用的代码:

### library imports ###
import random
from time import time
from SortingAlgorithms import selection_sort, merge_sort, quicksort


### function definitions ###
def create_array(size, max):
    return [random.randint(0, max) for _ in range(0, size)]


### main ###
n = [10, 100, 1000]
times = {'selection':[], 'merge':[], 'quick':[]}
samples = 5

for size in n:
    tot_time = 0.0
    for _ in range(samples):
        myArray = create_array(size, size)
        t0 = time()
        selection_sort(myArray)
        t1 = time()
        tot_time += t1 - t0
    times['selection'].append(tot_time / float(samples))

for size in n:
    tot_time = 0.0
    for _ in range(samples):
        myArray = create_array(size, size)
        t0 = time()
        merge_sort(myArray)
        t1 = time()
        tot_time += t1 - t0
    times['merge'].append(tot_time / float(samples))

for size in n:
    tot_time = 0.0
    for _ in range(samples):
        myArray = create_array(size, size)
        t0 = time()
        myArraySorted = quicksort(myArray)
        t1 = time()
        tot_time += t1 - t0
    times['quick'].append(tot_time / float(samples))

print("\n \t Selectionsort \t Mergesort \t Quicksort")
print(50* "_")
for i,size in enumerate(n):
    "{0:6d} \t {1:2.5f} \t {2:2.5f} \t {3:2.5f}".format(
        size,
        times['selection'][i],
        times['merge'][i],
        times['quick'][i]
    )

但是,只有第一行(Selectionsort、Mergesort、Quicksort)打印在终端上。性能不会被打印出来。我一直对 python 格式化字符串的方式感到困惑,所以我很确定我在这里做错了什么。不过,有人可以帮忙吗?

正如评论中所说,您只格式化了字符串,但没有打印它。 您不希望在不调用 print 函数的情况下输出字符串。