基于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程序运行效率的6个方法
Mar 31 Python
python实现的正则表达式功能入门教程【经典】
Jun 05 Python
Python编程实现的简单Web服务器示例
Jun 22 Python
python定时利用QQ邮件发送天气预报的实例
Nov 17 Python
Tensorflow加载预训练模型和保存模型的实例
Jul 27 Python
tensorflow学习教程之文本分类详析
Aug 07 Python
python批量创建指定名称的文件夹
Mar 21 Python
django数据库自动重连的方法实例
Jul 21 Python
代码总结Python2 和 Python3 字符串的区别
Jan 28 Python
简单了解python列表和元组的区别
May 14 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 Python
python基础详解之if循环语句
Apr 24 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
WordPress开发中的get_post_custom()函数使用解析
2016/01/04 PHP
Yii CGridView用法实例详解
2016/07/12 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
浅析jquery数组删除指定元素的方法:grep()
2016/05/19 Javascript
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法
2016/10/24 Javascript
jQuery UI实现动画效果代码分享
2018/08/19 jQuery
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
python实现异步回调机制代码分享
2014/01/10 Python
Python调用C语言开发的共享库方法实例
2015/03/18 Python
Python3中的2to3转换工具使用示例
2015/06/12 Python
在Mac OS上搭建Python的开发环境
2015/12/24 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
python八大排序算法速度实例对比
2017/12/06 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
opencv 图像滤波(均值,方框,高斯,中值)
2020/07/08 Python
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
村优秀党员事迹材料
2014/01/15 职场文书
责任心演讲稿
2014/05/14 职场文书
住宿生擅自离校检讨书
2014/09/22 职场文书
小学教师师德整改措施
2014/09/29 职场文书
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL