Python中, 将列表缓存与不缓存, 是否有异同( 比如性能上 )?

2017/1/5

描述

详见代码

  • 第一种可能有很大性能损失? ( 也许Python的特性不同呢 )

相关代码

  • 缓存列表与不缓存列表

def get_huge_list():
    return a_huge_list

# 1
[item 
  for item in get_huge_list()
  if isinstance(item, (str, ))]


# 2   在 C++ 中, 教材常教导我们要这样写
huge_list = get_huge_list()
[item 
  for itme in huge_list
  if isinstance(item, (str, ))]

上下文环境

  • 产品版本: Python 2.7

  • 操作系统: Linux

阅读 3.3k
2 个回答

缓存:huge_list占用的内存并不大 并且它的值是固定保持不变的
不缓存: 内存大,值会变化

担心性能问题,那就用generator

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题