我正在尝试根据另一个索引列表迭代列表中的元素子集。
最短/最pythonic的方式似乎会使用列表理解来达到以下效果:
for elt in [lst[idx] for idx in idxs]:
elt.do_stuff()
elt.do_more_stuff()
但是我不能动摇这样的感觉,如果我要循环很多次,每次重建列表理解可能会很昂贵,我应该多花一行来写:
for idx in indxs:
elt = lst[idx]
elt.do_stuff()
elt.do_more_stuff()
对python及其相对效率/低效率有更多了解的人能否了解这些方法之间的实际计算成本差异?我知道,我知道这两种方式都可以正常工作,但是一旦我开始想知道其中的区别,它就让我感到好奇。
相关分类