python函数没有修改列表_Python:通过引用创建一个修改列表的函数不是值
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:通过引用创建一个修改列表的函数不是值相关推荐
- python中如何创建一个空列表_Python学习笔记(1):列表的四种创建方法
我的电脑安装的是Anaconda 3开源的Python发行版本,其中是集合3.6版本的Python与可视化编程工具采用的是Spyder. 打开Spyder可视化工具,新建一个空白文件,做好备注为&qu ...
- python创建一个空列表alist_【Python 1-7】Python手把手教程之——详解列表List
列表 作者 | 弗拉德 来源 | 弗拉德(公众号:fulade_me) 列表,在其他语言中又被称为数组,是由一系列按特定顺序排列的元素组成.你可以创建包含字母表中所有字母.数字0~9或所有家庭成员姓名 ...
- python建立字典的程序_Python中如何创建字典Dict
1.概述 字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据,而且是Python中唯一的内建映射型数据结构. 比如有一个小学生的期末成绩,语文:79,数学:80,英语:92 ...
- [Python] 创建一个整数列表:range()
参考地址为Python range() 函数用法 range() 函数可创建一个整数列表,一般用在 for 循环中. 函数语法: range(start, stop[, step]) 参数说明: st ...
- python打开一个不存在的文件时-python判断文件是否存在,不存在就创建一个的实例...
python判断文件是否存在,不存在就创建一个的实例 如下所示: try: f =open("D:/1.txt",'r') f.close() except IOError: f ...
- python编程学习笔记列表_python编程:从入门到实践学习笔记-函数
Python学习资料或者需要代码.视频加Python学习群:516107834 定义函数 举个简单的例子 由上所示,关键字def定义一个函数,后面跟着函数名以及用来输入参数的括号,定义以冒号结束,而p ...
- format函数python生成列表_python 全栈开发,Day14(列表推导式,生成器表达式,内置函数)...
一.列表生成式 生成1-100的列表 li = [] for i in range(1,101): li.append(i) print(li) 执行输出: [1,2,3...] 生成python1期 ...
- python.集合转列表_Python基础数据类型:元组、列表、字典、集合
你好,我是goldsunC. 让我们一起进步吧! 元组.列表.字典.集合 元组和列表是Python语言中非常重要的一部分内容,它们是Python中除了字符串以外的另两种序列结构,几乎在任何地方都少不了 ...
- python定义字典列表_Python基础语法(四)—列表、元组、字典、集合、字符串
列表 基本概念列表是有序的元素集合,所有元素放在一对中括号中,用逗号隔开,没有长度限制: 列表索引值以0为开始值,-1为从未尾的开始位置. 列表可以使用+操作符进行拼接,使用*表示重复. 当列表元素增 ...
最新文章
- python学习书籍推荐-推荐python机器学习实践的书籍?
- 工作317:uni-修改其他页面整体样式
- AutoPep8-----Pycharm自动排版工具
- 批处理框架 Spring Batch,数据迁移量过大如何保证内存?
- 2016030208 - sql50题练习题
- cmd长ping记录日志和时间_ping命令结果中如何显示时间
- java持久层框架分析
- 微博黄V认证:微博兴趣认证指定领域怎么满足条件?
- 敏捷开发之道(六)计划(续)
- strcpy会覆盖原来的吗_你真的会拍合影照吗?原来高大上的合影照这样拍
- bootstrap 半透明背景_微信透明与半透明头像制作,全解析教程
- 《当程序员的那些狗日日子》五
- sdkman 安装使用教程
- 计算机网络——路由器和交换机
- 【bzoj1123】BLO
- 7-2 两个巨大素数(质数)的乘积 (10分)
- 用python的gui界面设计签名_Python GUI Tkinter简单实现个性签名设计
- 页面滚动穿透解决方案
- 【搜狐科技】HIS、PACS、CIS、RIS、LIS(下)
- 转:李开复微博中的一句话