基于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实现探测socket和web服务示例
Mar 28 Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 Python
tensorflow TFRecords文件的生成和读取的方法
Feb 06 Python
python web.py开发httpserver解决跨域问题实例解析
Feb 12 Python
python多线程之事件Event的使用详解
Apr 27 Python
python读取excel指定列数据并写入到新的excel方法
Jul 10 Python
python3安装speech语音模块的方法
Dec 24 Python
Python设计模式之工厂方法模式实例详解
Jan 18 Python
Python基于Dlib的人脸识别系统的实现
Feb 26 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
Apr 07 Python
Python Request类源码实现方法及原理解析
Aug 17 Python
selenium与xpath之获取指定位置的元素的实现
Jan 26 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递归函数怎么用才有效
2018/02/24 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
基于jquery的页面划词搜索JS
2010/09/14 Javascript
js 弹出菜单/窗口效果
2011/10/30 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
jQuery中的pushStack实现原理和应用实例
2015/02/03 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
使用jQuery给input标签设置默认值
2016/06/20 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
vue-router懒加载的3种方式汇总
2021/02/28 Vue.js
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
python多进程中的内存复制(实例讲解)
2018/01/05 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
Python 切分数组实例解析
2019/11/07 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
解决Python安装cryptography报错问题
2020/09/03 Python
python 实现批量图片识别并翻译
2020/11/02 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
三下乡活动方案
2014/01/31 职场文书
演讲稿格式
2014/04/30 职场文书
解约证明模板
2015/06/19 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
详解Nginx 工作原理
2021/03/31 Servers