基于python 将列表作为参数传入函数时的测试与理解


Posted in Python onJune 05, 2020

将一个列表传入函数后,会对这个列表本身产生什么改变?

这就是本文主要考察的内容。

list = [1,2,3,4,5,6,7]
word = list.pop(0)
print(word)
print(list)
# 输出结果理所当然地为:
# 1
# [2, 3, 4, 5, 6, 7]
#
def a(temp):
  b = temp.pop(0)
  print(b)
  print(temp)

a(list)
# 输出结果为:
# 2
# [3, 4, 5, 6, 7]
# 此处,传给temp时,list是[2,3,...7],但pop后,原list
# 有什么变化呢?试试下面的代码
print(list)
# 输出结果为:
# [3, 4, 5, 6, 7]
# 可见,执行temp.pop函数后,list原本的值也受到了改变。
# 所以,一个数组(或者叫列表)传给temp时,传入的是指针
# 地址,而不是副本。下面的例子更加说明了这个问题

print(list[0])

def b(temp2):
  temp2[0] = temp2[0] + 10
  # 将temp2这个列表的第一个元素,作+10的运算
b(list)
print(list[0])
# 最终输出:
# 3
# 13
# list在b函数内的经过temp2运作后,改变的是list本身的值
# 所以,将某个列表(比如这里的list)作为参数传入某个函数
# 其传递的是list所在的真实地址。所有修改也是对list直接
# 的修改。

补充知识:python 字典怎样当作参数传入函数里,以及在函数里的一些遍历。变量的作用域。

字典当作参数以后的一些用法:

dic={'abc':123,'aaa':333,'wer':334}
def text_dic(**dd):
  for a,b in dd.items():# a 代表键 ,b代表值
    print(a,b)
text_dic(**dic)

#输出字典中的键:
def text_dic(**dd):
   for key in text_dic:#key为键
 print(key)
text_dic(**dic)

#输出字典中键的值:
def text_dic(**dd):
   for value in text_dic.keys():#value为值
 print(value)
text_dic(**dic)

变量的作用域:

全局变量:

全局变量的作用域当然是全局的随时可调用,他要是和局部变量冲突时,局部变量优先

局部变量:

在python中局部变量不可以改变全局变量。

当然如果你想在局部改全局变量的话,你可以先声明这个变量是全局变量globle,然后在进行更改

以上这篇基于python 将列表作为参数传入函数时的测试与理解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python开发之for循环操作实例详解
Nov 12 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
Jun 03 Python
python flask实现分页效果
Jun 27 Python
python实现redis三种cas事务操作
Dec 19 Python
Python中xrange与yield的用法实例分析
Dec 26 Python
Numpy掩码式数组详解
Apr 17 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
python列表使用实现名字管理系统
Jan 30 Python
PyCharm取消波浪线、下划线和中划线的实现
Mar 03 Python
python3中sys.argv的实例用法
Apr 24 Python
Python如何给函数库增加日志功能
Aug 04 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
Oct 15 Python
python 引用传递和值传递详解(实参,形参)
Jun 05 #Python
Python检测端口IP字符串是否合法
Jun 05 #Python
Python如何基于Tesseract实现识别文字功能
Jun 05 #Python
如何导出python安装的所有模块名称和版本号到文件中
Jun 05 #Python
在python中list作函数形参,防止被实参修改的实现方法
Jun 05 #Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 #Python
浅谈python 调用open()打开文件时路径出错的原因
Jun 05 #Python
You might like
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
推荐一款MAC OS X 下php集成开发环境mamp
2014/11/08 PHP
PHP结合jQuery实现找回密码
2015/07/22 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
2013/10/29 Javascript
禁止ajax缓存获取程序最新数据的方法
2013/11/19 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
Chrome调试折腾记之JS断点调试技巧
2017/09/11 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
python文件和目录操作方法大全(含实例)
2014/03/12 Python
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
Python ftp上传文件
2016/02/13 Python
Python实现拷贝多个文件到同一目录的方法
2016/09/19 Python
django表单的Widgets使用详解
2019/07/22 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
美国婚礼和派对礼品网站:Kate Aspen(新娘送礼会、迎婴派对)
2018/03/28 全球购物
客户经理岗位职责
2013/12/08 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
房屋出售授权委托书
2014/10/12 职场文书
退税申请报告怎么写
2015/05/18 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android
详解MindSpore自定义模型损失函数
2021/06/30 Python
mysql分表之后如何平滑上线详解
2021/11/01 MySQL