Python嵌套懒惰列表



我正在尝试用matplotlib绘制一个2-D图像,该图像期望嵌套列表格式的数据点。我已经有了一种非常整洁的惯用方法来生成它:

zs = [[cost_at(x, y) for x in x_range] for y in y_range]
plt.contourf(x_range, y_range, zs, 1000)

它起作用 - 用于小数据。但是,我现在需要做完全相同的事情,除了x和y范围太大,无法使整个嵌套列表适合内存。在我看来,应该可以用懒惰的列表来调用API,希望可以是足够的替代品,假设图书馆可以通过迭代器访问它们。

除了使用懒惰列表以外,上述方法是什么?

在python中,可以使用生成器表达式创建"懒惰列表":

zs = ((cost_at(x, y) for x in x_range) for y in y_range)

通过使用括号而不是方括号,您可以创建一个嵌套的生成器表达式,该表达式一次提供cost_at(x, y),而不是一次计算它们。

相关内容

  • 没有找到相关文章

最新更新