基于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 相关文章推荐
简单的Python2.7编程初学经验总结
Apr 01 Python
使用Python脚本将Bing的每日图片作为桌面的教程
May 04 Python
深入理解Python装饰器
Jul 27 Python
聊聊Python中的pypy
Jan 12 Python
ubuntu安装mysql pycharm sublime
Feb 20 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
Apr 18 Python
python实现自动网页截图并裁剪图片
Jul 30 Python
python实现定时压缩指定文件夹发送邮件
Dec 22 Python
python conda操作方法
Sep 11 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
Sep 16 Python
python实现扫雷游戏
Mar 03 Python
pandas DataFrame 数据选取,修改,切片的实现
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
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
php_xmlhttp 乱码问题解决方法
2009/08/07 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
CI框架装载器Loader.php源码分析
2014/11/04 PHP
PHP输出XML格式数据的方法总结
2017/02/08 PHP
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
2017/09/26 Javascript
浅谈es6 javascript的map数据结构
2017/12/14 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
Vue.js最佳实践(五招助你成为vuejs大师)
2018/05/04 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
element-ui 中使用upload多文件上传只请求一次接口
2019/07/19 Javascript
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
Python功能点实现:函数级/代码块级计时器
2019/01/02 Python
Python爬取网页信息的示例
2020/09/24 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码
2012/12/13 HTML / CSS
Groupon法国官方网站:特卖和网上购物高达-70%
2019/09/02 全球购物
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
网游商务专员求职信
2013/10/15 职场文书
计算机本科生自荐信
2013/10/15 职场文书
英文自我鉴定
2013/12/10 职场文书
毕业证代领委托书
2014/09/26 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
Python打包为exe详细教程
2021/05/18 Python