基于python 将列表作为参数传入函数时的测试与理解

 更新时间:2020年06月05日 10:09:12   作者:fupanq_  
这篇文章主要介绍了基于python 将列表作为参数传入函数时的测试与理解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

将一个列表传入函数后,会对这个列表本身产生什么改变?

这就是本文主要考察的内容。

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数据分析之pandas读取数据

    Python数据分析之pandas读取数据

    Pandas读取的文件主要有CSV,TXT和JSON,今天就整理了这3种文件格式的读取和导出代码,文中有非常详细的代码示例及介绍,需要的朋友可以参考下
    2021-06-06
  • Python实现读取HTML表格 pd.read_html()

    Python实现读取HTML表格 pd.read_html()

    这篇文章主要介绍了Python实现读取HTML表格 pd.read_html(),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Pytorch学习笔记DCGAN极简入门教程

    Pytorch学习笔记DCGAN极简入门教程

    网上GAN的教程太多了,这边也谈一下自己的理解,本文给大家介绍一下GAN的两部分组成,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09
  • Python+matplotlib实现循环作图的方法详解

    Python+matplotlib实现循环作图的方法详解

    这篇文章主要为大家介绍了Python如何利用matplotlib实现循环作图的,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习学习
    2022-06-06
  • Python爬虫基础之简单说一下scrapy的框架结构

    Python爬虫基础之简单说一下scrapy的框架结构

    今天给大家带来的是关于Python爬虫的相关知识,文章围绕着scrapy的框架结构展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • python字典值排序并取出前n个key值的方法

    python字典值排序并取出前n个key值的方法

    今天小编就为大家分享一篇python字典值排序并取出前n个key值的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 详解在Anaconda环境下Python安装pydot与graphviz的方法

    详解在Anaconda环境下Python安装pydot与graphviz的方法

    这篇文章主要为大家详细介绍了在Anaconda环境中,安装Python语言pydot与graphviz两个模块的方法,文中的安装方法讲解详细,感兴趣 的可以了解一下
    2023-02-02
  • 基于python实现MUI区域滚动

    基于python实现MUI区域滚动

    这篇文章主要介绍的是python实现MUI区域滚动,MUI提供了区域滚动的组件,使用时遵循DOM结构就可以,下面来看看文章具体的实现内容,需要的朋友可以参考一下
    2021-11-11
  • Python内存管理方式和垃圾回收算法解析

    Python内存管理方式和垃圾回收算法解析

    这篇文章主要介绍了Python内存管理方式和垃圾回收算法解析,介绍了传统的垃圾回收机制,其工作方法,finalizer的问题等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • 利用Python封装MySQLHelper类实现数据库的增删改查功能

    利用Python封装MySQLHelper类实现数据库的增删改查功能

    Python 连接 MySQL 的方法有很多,常用的有 pymysql 和 mysql-connector-python 两种库,本文主要介绍了如何封装一个MySQLHelper类,实现对数据库的增删改查功能,感兴趣的可以了解一下
    2023-06-06

最新评论