基于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中index()和seek()的用法(详解)
Apr 27 Python
django站点管理详解
Dec 12 Python
tensorflow TFRecords文件的生成和读取的方法
Feb 06 Python
深入了解Python枚举类型的相关知识
Jul 09 Python
Django认证系统实现的web页面实现代码
Aug 12 Python
python selenium循环登陆网站的实现
Nov 04 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
python使用PIL剪切和拼接图片
Mar 23 Python
解决Opencv+Python cv2.imshow闪退问题
Apr 24 Python
Python使用configparser读取ini配置文件
May 25 Python
Python flask路由间传递变量实例详解
Jun 03 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
数字转英文
2006/12/06 PHP
php session处理的定制
2009/03/16 PHP
PHP获取MAC地址的函数代码
2011/09/11 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
2013/12/08 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
微信小程序中转义字符的处理方法
2019/03/28 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
JavaScript如何操作css
2020/10/24 Javascript
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
编写Python CGI脚本的教程
2015/06/29 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
浅谈python中的数字类型与处理工具
2017/08/02 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
详解pytorch tensor和ndarray转换相关总结
2020/09/03 Python
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
Shell编程面试题
2012/05/30 面试题
财务管理专业毕业生求职信范文
2013/09/21 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
体育系毕业生求职自荐信
2014/04/16 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
理解python中装饰器的作用
2021/07/21 Python