繁体   English   中英

在Python的列表理解中插入tkinter进度栏

[英]insert a tkinter progress bar in a List Comprehensions of Python

通常我使用一个简单的循环在tkinter中插入一个不确定的进度条。

self.pbar_ind = ttk.Progressbar(self, orient="horizontal", length=300, mode="indeterminate")

new_point_in_list = list()
for point in point_in_list:
  self.pbar_ind.step(1)
  self.update()
  if point > 2:
     new_point_in_list.append(point)

现在我正在使用列表推导来加快计算速度

new_point_in_list = [point for point in point_in_list if point > 2]

我想知道是否可以在列表理解中插入Tkinter进度条

如果您担心性能,请删除对self.update()的调用。 它将使您的循环速度降低多达三个数量级 至少您应该仅每1,000次迭代调用一次。

在快速测试中,我可以进行10,000个简单的计算,从而导致大约0.016秒内将1%的值附加到循环中。 当我在循环中添加要update的呼叫时,时间将扩展为1.0148秒。

您在评论中说,您有八千万行要迭代。 我的相同代码可以在12秒内处理8000万次计算,而在我添加更新调用时要花2个小时以上。

与删除或减少对更新的调用相比,将您的代码转换为使用列表理解将具有微不足道的效果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM