基于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代码
Mar 13 Python
python中的错误处理
Apr 10 Python
Python 操作文件的基本方法总结
Aug 10 Python
Python冲顶大会 快来答题!
Jan 17 Python
django项目搭建与Session使用详解
Oct 10 Python
python实现可变变量名方法详解
Jul 01 Python
python连接、操作mongodb数据库的方法实例详解
Sep 11 Python
基于Python获取城市近7天天气预报
Nov 26 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
Jan 20 Python
使用Python 自动生成 Word 文档的教程
Feb 13 Python
pytorch 把图片数据转化成tensor的操作
Mar 04 Python
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
Aug 14 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连接和操作MySQL数据库基础教程
2014/09/29 PHP
两款万能的php分页类
2015/11/12 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
设定php简写功能的方法
2019/11/28 PHP
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
鼠标滚轮控制网页横向移动实现思路
2013/03/22 Javascript
html向js方法传递参数具体实现
2013/08/08 Javascript
js实现点击链接后窗口缩小并居中的方法
2015/03/02 Javascript
招聘网站基于jQuery实现自动刷新简历
2015/05/10 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
javascript实现表单验证
2016/01/29 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
jQuery实现下拉框功能实例代码
2016/05/06 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
vue项目中引入Sass实例方法
2019/08/27 Javascript
[47:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第二场 3月4日
2021/03/11 DOTA
Python生成验证码实例
2014/08/21 Python
Python判断文件和字符串编码类型的实例
2017/12/21 Python
python实现石头剪刀布小游戏
2021/01/20 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
浅谈Python中的字符串
2020/06/10 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
什么是数据库锁?Oracle中都有哪些类型的锁?
2015/08/21 面试题
Ajax的优点和缺点
2014/11/21 面试题
高中生学习生活的自我评价
2013/10/09 职场文书
中学清明节活动总结
2014/07/04 职场文书
运动会广播稿100字
2014/09/14 职场文书
教师党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
会议欢迎词
2015/01/23 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
开学第一天的感想
2015/08/10 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技