您将在循环的每一遍上打印出整个字典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