Python以相同的方式传递所有内容,但是通过“通过值”或“通过引用”来调用它不会清除所有内容,因为Python的语义与通常应用的语言不同.如果我要描述它,我会说所有的传递都是通过值,并且该值是一个对象引用. (这就是为什么我不想说呢!)

如果要从列表中过滤出一些东西,您将构建一个新列表

foo = range(100000)

new_foo = []

for item in foo:

if item % 3 != 0: # Things divisble by 3 don't get through

new_foo.append(item)

或使用列表理解语法

new_foo = [item for item in foo if item % 3 != 0]

Python不会在列表中复制对象,而是foo和new_foo都将引用相同的对象. (Python从不隐式复制任何对象.)

您已经建议您对此操作有性能问题.使用旧的列表中的重复的del语句将导致代码不那么惯用,而且更容易混淆,但它会引入二次性能,因为整个列表必须每次重新整理.

要表现:

获取并运行.除非你有代码工作,否则你无法弄清楚你的表现是什么样的.这也将告诉你是否需要优化的速度或空间;您在代码中提到了两方面的担忧,但是经常性的优化涉及到以另一方为代价.

>个人资料及时使用the stdlib tools性能.有各种第三方内存分析器可以有些有用,但并不是很好用.

>测量. Time或重新设置内存,当您进行更改以查看更改是否有所改进,如果是这样改进.

>为了使您的代码更加内存敏感,您经常希望在存储数据的过程中发生变化,而不是微量优化,例如不构建第二个列表来进行过滤. (同样的时间是真的,真的:改变成更好的算法几乎总是提供最好的加速,但是很难概括速度优化).

一些常见的范式转变为优化Python中的内存消耗包括

>使用发电机.发电机是懒惰的迭代:它们不会一次将整个列表加载到内存中,他们知道他们的下一个项目是什么.要使用生成器,上面的代码片段将是这样

foo = xrange(100000) # Like generators, xrange is lazy

def filter_divisible_by_three(iterable):

for item in foo:

if item % 3 != 0:

yield item

new_foo = filter_divisible_by_three(foo)

或者,使用生成器表达式语法,

new_foo = (item for item in foo if item % 3 != 0)

>使用numpy作为均匀序列,特别是数字的情绪.这也可以加快执行大量向量操作的代码.>将数据存储到磁盘,如数据库中.

python函数没有修改列表_Python:通过引用创建一个修改列表的函数不是值相关推荐

  1. python中如何创建一个空列表_Python学习笔记(1):列表的四种创建方法

    我的电脑安装的是Anaconda 3开源的Python发行版本,其中是集合3.6版本的Python与可视化编程工具采用的是Spyder. 打开Spyder可视化工具,新建一个空白文件,做好备注为&qu ...

  2. python创建一个空列表alist_【Python 1-7】Python手把手教程之——详解列表List

    列表 作者 | 弗拉德 来源 | 弗拉德(公众号:fulade_me) 列表,在其他语言中又被称为数组,是由一系列按特定顺序排列的元素组成.你可以创建包含字母表中所有字母.数字0~9或所有家庭成员姓名 ...

  3. python建立字典的程序_Python中如何创建字典Dict

    1.概述 字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据,而且是Python中唯一的内建映射型数据结构. 比如有一个小学生的期末成绩,语文:79,数学:80,英语:92 ...

  4. [Python] 创建一个整数列表:range()

    参考地址为Python range() 函数用法 range() 函数可创建一个整数列表,一般用在 for 循环中. 函数语法: range(start, stop[, step]) 参数说明: st ...

  5. python打开一个不存在的文件时-python判断文件是否存在,不存在就创建一个的实例...

    python判断文件是否存在,不存在就创建一个的实例 如下所示: try: f =open("D:/1.txt",'r') f.close() except IOError: f ...

  6. python编程学习笔记列表_python编程:从入门到实践学习笔记-函数

    Python学习资料或者需要代码.视频加Python学习群:516107834 定义函数 举个简单的例子 由上所示,关键字def定义一个函数,后面跟着函数名以及用来输入参数的括号,定义以冒号结束,而p ...

  7. format函数python生成列表_python 全栈开发,Day14(列表推导式,生成器表达式,内置函数)...

    一.列表生成式 生成1-100的列表 li = [] for i in range(1,101): li.append(i) print(li) 执行输出: [1,2,3...] 生成python1期 ...

  8. python.集合转列表_Python基础数据类型:元组、列表、字典、集合

    你好,我是goldsunC. 让我们一起进步吧! 元组.列表.字典.集合 元组和列表是Python语言中非常重要的一部分内容,它们是Python中除了字符串以外的另两种序列结构,几乎在任何地方都少不了 ...

  9. python定义字典列表_Python基础语法(四)—列表、元组、字典、集合、字符串

    列表 基本概念列表是有序的元素集合,所有元素放在一对中括号中,用逗号隔开,没有长度限制: 列表索引值以0为开始值,-1为从未尾的开始位置. 列表可以使用+操作符进行拼接,使用*表示重复. 当列表元素增 ...

最新文章

  1. python学习书籍推荐-推荐python机器学习实践的书籍?
  2. 工作317:uni-修改其他页面整体样式
  3. AutoPep8-----Pycharm自动排版工具
  4. 批处理框架 Spring Batch,数据迁移量过大如何保证内存?
  5. 2016030208 - sql50题练习题
  6. cmd长ping记录日志和时间_ping命令结果中如何显示时间
  7. java持久层框架分析
  8. 微博黄V认证:微博兴趣认证指定领域怎么满足条件?
  9. 敏捷开发之道(六)计划(续)
  10. strcpy会覆盖原来的吗_你真的会拍合影照吗?原来高大上的合影照这样拍
  11. bootstrap 半透明背景_微信透明与半透明头像制作,全解析教程
  12. 《当程序员的那些狗日日子》五
  13. sdkman 安装使用教程
  14. 计算机网络——路由器和交换机
  15. 【bzoj1123】BLO
  16. 7-2 两个巨大素数(质数)的乘积 (10分)
  17. 用python的gui界面设计签名_Python GUI Tkinter简单实现个性签名设计
  18. 页面滚动穿透解决方案
  19. 【搜狐科技】HIS、PACS、CIS、RIS、LIS(下)
  20. 转:李开复微博中的一句话

热门文章

  1. 简约不简单的单例模式
  2. 用三年时间培养 1W 名高素质技术人才,这是一个什么样的计划?
  3. 程序员的求生欲有所强?用Python花式哄女友
  4. 优酷用户触达平台技术大揭秘
  5. 华为首秀 AI 全栈软件平台!
  6. 想学新的编程语言?考虑下 Go 吧!
  7. 华为首款可折叠屏5G手机今日开售;GitHub将开源代码保存在北极;Win10禁用WEP加密|极客头条...
  8. 告别写笔记,AI 实时转写黑科技来了!
  9. 我是如何从零开始 Web 前端自学之路的?
  10. 告别相杀!面向对象和函数式编程共存