基于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.6版本中实现字典推导 PEP 274(Dict Comprehensions)
Apr 28 Python
Python 实现一个颜色色值转换的小工具
Dec 06 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
Nov 23 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
Aug 25 Python
破解安装Pycharm的方法
Oct 19 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
Feb 18 Python
pandas 数据索引与选取的实现方法
Jun 21 Python
python爬取盘搜的有效链接实现代码
Jul 20 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
Mar 30 Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 Python
PIP和conda 更换国内安装源的方法步骤
Sep 21 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
Discuz 5.0 中读取纯真IP数据库函数分析
2007/03/16 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
js对象数组按属性快速排序
2011/01/31 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
jQuery遮罩层实现方法实例详解(附遮罩层插件)
2015/12/08 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
折叠菜单及选择器的运用
2017/02/03 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
JS开发 富文本编辑器TinyMCE详解
2019/07/19 Javascript
详解Vue的组件中data选项为什么必须是函数
2020/08/17 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
python self,cls,decorator的理解
2009/07/13 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
2018/11/29 Python
Python的缺点和劣势分析
2019/11/19 Python
关于python pycharm中输出的内容不全的解决办法
2020/01/10 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
英国复古服装购物网站:Collectif
2019/10/30 全球购物
阿联酋优惠券服务:Living Kool
2019/12/12 全球购物
师范生实习自我鉴定
2013/11/01 职场文书
美术师范毕业生自荐信
2013/11/16 职场文书
kfc实习自我鉴定
2013/12/14 职场文书
医学生求职信
2014/07/01 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书