基于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中处理unchecked未捕获异常实例
Jan 17 Python
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
Mar 05 Python
Python爬取国外天气预报网站的方法
Jul 10 Python
浅谈python 四种数值类型(int,long,float,complex)
Jun 08 Python
Python3 实现随机生成一组不重复数并按行写入文件
Apr 09 Python
使用python socket分发大文件的实现方法
Jul 08 Python
python使用flask与js进行前后台交互的例子
Jul 19 Python
python中几种自动微分库解析
Aug 29 Python
pyftplib中文乱码问题解决方案
Jan 11 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
Sep 23 Python
Python如何使用logging为Flask增加logid
Mar 30 Python
python人工智能human learn绘图可创建机器学习模型
Nov 23 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
如何开始收听短波广播
2021/03/01 无线电
mysql,mysqli,PDO的各自不同介绍
2012/09/19 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
JavaScript中的this实例分析
2011/04/28 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
JS实现的仿淘宝交易倒计时效果
2015/11/27 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
任意Json转成无序列表的方法示例
2016/12/09 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
JS表单数据验证的正则表达式(常用)
2017/02/18 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
2019/11/04 Javascript
Python实现抢购IPhone手机
2018/02/07 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
社会实践感言
2014/01/25 职场文书
暑期研修感言
2014/02/17 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
婚礼答谢词范文
2015/09/29 职场文书