基于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 相关文章推荐
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
Jun 18 Python
Python中几种导入模块的方式总结
Apr 27 Python
Python3生成手写体数字方法
Jan 30 Python
Python数据抓取爬虫代理防封IP方法
Dec 23 Python
对python_discover方法遍历所有执行的用例详解
Feb 13 Python
Python基础之条件控制操作示例【if语句】
Mar 23 Python
Python正则表达式匹配数字和小数的方法
Jul 03 Python
Python实现银行账户资金交易管理系统
Jan 03 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
tensorflow下的图片标准化函数per_image_standardization用法
Jun 30 Python
解决pip install psycopg2出错问题
Jul 09 Python
python 制作磁力搜索工具
Mar 04 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
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
javascript 文档的编码问题解决
2009/03/01 Javascript
JavaScript Eval 函数使用
2010/03/23 Javascript
Javascript 面向对象 命名空间
2010/05/13 Javascript
js location.replace与location.reload的区别
2010/09/08 Javascript
jquery动态加载js三种方法实例
2013/08/03 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
2013/12/29 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
2016/11/18 Javascript
基于复选框demo(分享)
2017/09/27 Javascript
Vue按需加载的具体实现
2017/12/02 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
Python的for和break循环结构中使用else语句的技巧
2016/05/24 Python
Python中django学习心得
2017/12/06 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
关于Python的一些学习总结
2018/05/25 Python
python实现Zabbix-API监控
2018/09/17 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
python得到电脑的开机时间方法
2018/10/15 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
兴趣小组活动总结
2014/05/05 职场文书
小学生国庆节演讲稿
2014/09/05 职场文书
2019年工作总结范文
2019/05/21 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python
Opencv实现二维直方图的计算及绘制
2021/07/21 Python