如何真正快速地打印输出并解决重复打印图案,这也是输出的分割问题?

虽然我使用此python37代码进行打印,但它会重复进行到结束并缓慢执行。我真的需要它才能快速打印。另外,我想除以在冒号之前找到的第一个数字,并输出与在冒号之后关联的数字。

例如,程序经过一定数量的运算后,在集合中找到了这个比率对(8978:1445580),我决定像8978/8978一样对它进行划分,然后输出(1445580)。也许它只匹配8978并输出(1445580)作为输出。

这可能吗?它似乎是可编程的,但是我的技能在这方面有些薄弱,我可以使用一些帮助。

非常感谢您的帮助!:)

这是我正在使用的代码:

    while True:
        list_numbers={}
        a = int(input(' Enter 1st number for ratio calculation: '))
        b = int(input(' Enter 2nd number for ratio calculation: '))

        y = int(input(' Enter y start range: '))
        n = int(input(' Enter n end range: '))

        for x in range(y,n):
            list_numbers.update({a*x: b*x})
            print(list_numbers)
xiaoheige2008 回答:如何真正快速地打印输出并解决重复打印图案,这也是输出的分割问题?

您将在循环的每一遍上打印出整个字典list_numbers,而不是仅打印新值。如果字典变大,那可能要花一点时间。

您可以打印出要添加的新值:

for x in range(y,n):
    new_values = {a*x: b*x}
    list_numbers.update(new_values)
    print(new_values)

或者,等待循环结束并打印出整个内容:

for x in range(y,n):
    list_numbers.update({a*x: b*x})

print(list_numbers)

如果选择后者,则可以简化代码:

while True:
    a = int(input(' Enter 1st number for ratio calculation: '))
    b = int(input(' Enter 2nd number for ratio calculation: '))

    y = int(input(' Enter y start range: '))
    n = int(input(' Enter n end range: '))

    list_numbers = {a*x: b*x for x in range(y,n)}
    print(list_numbers)

这只是我在这里看到的提高打印效率的改进,我实际上不知道您所指的部门问题(这似乎完全是另一个问题的主题)

,

正如之前有人告诉您的那样,打印后计算速度更快。 数学是在函数内部进行的,我认为比使代码保持“真”更好。 而且我只是为了测试目的而更改了固定变量的输入。 在这两个函数中(一个带有您的代码和我的代码),您都会得到100个结果(打印列表长度)。您在这里什么都不会错过,但是请多花点时间:-)

导入时间

#your code
def code_timed():

    list_numbers={}

    a = 3 #int(input(' Enter 1st number for ratio calculation: '))
    b = 5 #int(input(' Enter 2nd number for ratio calculation: '))

    y = 500 # int(input(' Enter y start range: '))
    n = 600 # int(input(' Enter n end range: '))


    for x in range(y,n):
        list_numbers.update({a*x: b*x})
        print(list_numbers)     


elapsed_time = timeit.timeit(code_timed,number=100)/100
print(elapsed_time) 
0.8021428676611905

# mine
def code_timed():

    faster_list=[]

    a = 3 #int(input(' Enter 1st number for ratio calculation: '))
    b = 5 #int(input(' Enter 2nd number for ratio calculation: '))

    y = 500 # int(input(' Enter y start range: '))
    n = 600 # int(input(' Enter n end range: '))


    for x in range(y,n):
        faster_list.append({a*x: b*x})


    print(faster_list[0]) #to get out of the '[]'


elapsed_time = timeit.timeit(code_timed,number=100)/100
print(elapsed_time)     
0.004112908859074196
本文链接:https://www.f2er.com/3060156.html

大家都在问