为什么具有许多交互的列表理解比多个列表理解要慢得多?

时间:2021-03-19 09:19:45

标签: python python-3.x list spyder

当我尝试运行具有大量交互的列表推导式时,该命令花费的时间太长并且不输出答案。但是,如果我把它分成几个小清单,我就可以完成工作。

示例: 第一个需要“无限”:

cl = [bool(sum([x in c_groups.index[k] for x in bb_sorted.columns[5:11]])) for k in range(len(c_groups))]

虽然这在合理的时间内工作得很好:

cl1 = [bool(sum([x in c_groups.index[k] for x in bb_sorted.columns[5:11]])) for k in range(1000)]
cl2 = [bool(sum([x in c_groups.index[k] for x in bb_sorted.columns[5:11]])) for k in range(1000,2000)]
cl3 = [bool(sum([x in c_groups.index[k] for x in bb_sorted.columns[5:11]])) for k in range(2000,3000)]
cl4 = [bool(sum([x in c_groups.index[k] for x in bb_sorted.columns[5:11]])) for k in range(3000,len(c_groups))]
cl = cl1 + cl2 + cl3 + cl4

我完全按照我写的东西复制了这个例子,但它也发生在其他情况下。我不知道这里发生了什么,并且避免像这样破坏列表推导式的问题感觉不对。

为什么会发生这种情况,以及如何避免这种情况(不打断这样的句子)?

编辑:

我再次尝试了相同的脚本,发现错误仅在使用 Spyder 时发生(在 shell 中运行正常)。因此,我想这一定是 IDE 的问题(有意义吗?)。

0 个答案:

没有答案
相关问题