题目部分(原文见公众号:python宝)

python宝

https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzU5NjIyOTE4OQ==&scene=123#wechat_redirect

小麦苗DB宝

https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MzIzOTA2NjEzNQ==&scene=1&album_id=1407409723808366593&count=3#wechat_redirect

小麦苗个人博客:https://www.xmmup.com/

答案部分

一、说出下面list1,list2,list3的输出值

def appendList(val, list=[]):list.append(val)return list
list1 = appendList(10)
list2 = appendList(123,[])
list3 = appendList('a')
print("list1 = %s" % list1)  # [10, 'a']
print("list2 = %s" % list2)  # [123]
print("list3 = %s" % list3)  # [10, 'a']

  许多人会错误的认为 list1 应该等于 [10] 以及 list3 应该等于 ['a']。认为 list 的参数会在 extendList 每次被调用的时候会被设置成它的默认值 []。

  尽管如此,实际发生的事情是,新的默认列表仅仅只在函数被定义时创建一次。随后当 extendList 没有被指定的列表参数调用的时候,其使用的是同一个列表。这就是为什么当函数被定义的时候,表达式是用默认参数被计算,而不是它被调用的时候。

  因此,list1 和 list3 是操作的相同的列表。而list2是操作的它创建的独立的列表(通过传递它自己的空列表作为list参数的值)

  所以这一点一定要切记切记.下面我们把list置为None就可以避免一些麻烦了

二、说出下面list1,list2,list3的输出值

def appendList(val, list=None):if list is None:list = []list.append(val)return list
list1 = appendList(10)
list2 = appendList(123,[])
list3 = appendList('a')
print("list1 = %s" % list1)  # [10]
print("list2 = %s" % list2)  # [123]
print("list3 = %s" % list3)  # ['a']

About Me:小麦粒

● 本文作者:小麦粒,专注于python、数据分析、数据挖掘、机器学习相关技术,也注重技术的运用

● 作者博客地址:https://blog.csdn.net/u010986753

● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

● 个人微信号:pythonbao 联系我加微信群

● 个人QQ:87605025

● QQ交流群py_data :483766429

● 公众号:python宝 或 DB宝

● 提供OCP、OCM和高可用最实用的技能培训

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

如果你觉得到文章对您有帮助,点击下方我的头像,赞赏我哦!

有您的支持,小麦粒一定会越来越好!

【244】Python 说出下面list1,list2,list3的输出值(新的默认列表仅仅只在函数被定义时创建一次)...相关推荐

  1. 站长在线Python精讲:在Python中函数的定义与创建详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中函数的定义与创建详解>.本文的主要内容有:函数的定义.函数的定义规则.函数的创建. 目录 1.函数的定义 2 ...

  2. Python 随机提取Excel中部分数据并输出为新表格

    将60000行数据的excel提取其中10%作为模型测试集,并将提取剩下的数据输出为另一个文件 import openpyxl import random from openpyxl import l ...

  3. Python中函数的定义和参数传递

    前言 什么是函数,为什么它又叫做函数? 一.函数的定义 以前在中学阶段我们就学习过函数,那时的函数的定义是给定一个数集A,假设其中的元素为x,对A中的元素x施加对应法则f,记作f(x),得到另一数集B ...

  4. python找出两个列表不同元素_python 找出两个列表的相同元素与不同元素

    python 找出两个列表的相同元素与不同元素,用了以下几种方法 1. 通过set 集合 list1 = [1,2,3] list2=[2,3,4] set1 = set(list1) set2 = ...

  5. Python画出心目中的自己

    作者 | 李秋键 责编 | 晋兆雨 头图 | CSDN下载自视觉中国 引言:人脸图像的生成在各个行业有着重要应用,例如刑事调查.人物设计.教育培训等.然而一幅逼真的人脸肖像,对于职业画家也要至少数小时 ...

  6. 当程序员的一个人无聊时,甚至用Python开发出机器人看他们聊天

    当程序员的一个人独孤的时候,甚至可以用Python开发出两个机器人看他们聊天 当你无聊的时候,可能会刷一下手机看一下新闻,看看电视剧,发发呆. 但是当程序员无聊起来的时候,甚至可以用Python开发两 ...

  7. 武大学生用python敲出樱花开放(附视频源码)

    来源:凹凸数据 整理:朱小五 本文约1000字,建议阅读5分钟 武大信管院的朱永春同学,用python敲出樱花开放. 今年的武汉大学没有了往年的人山人海,但是美丽的樱花依然在春天里独自绽放. 武汉大学 ...

  8. echarts词云图形状_怎么用Python画出好看的词云图?

    相信很多人在第一眼看到下面这些图时,都会被其牛逼的视觉效应所吸引,这篇文章就教大家怎么用Python画出这种图. 前期准备 上面的这种图叫做词云图,主要用途是将文本数据中出现频率较高的关键词以可视化的 ...

  9. python画动态爱心-使用Python画出小人发射爱心的代码

    我就废话不多说了,直接上代码吧! #2.14 from turtle import * from time import sleep def go_to(x, y): up() goto(x, y) ...

最新文章

  1. Exchange服务器系列课程之七--维护邮件服务器(二)
  2. Android 屏幕截图
  3. php汽车找车位,车停在哪最省心?小编奉上找车位小指南
  4. java 调用postgresql 函数_从Java调用PostgreSQL中的存储过程
  5. 通讯传输--全双工和半双工
  6. php 格式化 sub,PHP DateTime sub()用法及代码示例
  7. linux文件访问权限,Linux文件权限和访问模式
  8. 链表之删除双链表倒数第K个节点
  9. Asp.Net Forums研究文章集合(收藏)
  10. 10外置面板没声音_现在电脑机箱只能用外置光驱了?看我装了个隐蔽式光驱
  11. Spring+hibernate+JSP实现Piano的数据库操作---4.配置文件
  12. 中值滤波_图像处理之低通滤波
  13. 电气绘图软件-AutoCAD Electrical:基本基础(一)
  14. SublimeText 3 高亮 MATLAB语法
  15. 有道词典java下载电脑版下载不了_网易有道词典电脑版下载
  16. wps页眉怎么设置不同页码_WPS论文排版教程二:如何设置不同页码
  17. centos 7查看CPU温度
  18. 贪吃蛇java游戏代码_java实现贪吃蛇游戏代码(附完整源码)
  19. throw java_THROW,JAVA的throw和throws怎么用!
  20. 控制电缆分布电容产生的原因及电容量计算

热门文章

  1. 宜家2.0:家具巨头对智能家居的大赌注
  2. 计算机专业私,美国私立寄宿高中计算机专业STEM排名TOP20
  3. Unity制作地震防空知识视频讲解程序
  4. 在Pycharm 中import os 或者import selenium from selenium import webdriver就会报错
  5. 二分法求利率(非线性方程求解)
  6. 【针对产品说测试】之微信红包
  7. android控件向内弧度_android给View设置边框 填充颜色 弧度
  8. 大话西游手游如何修改服务器,大话西游手游如何重新更换职业?更换新职业操作方法说明...
  9. 历史上著名的软件质量事故
  10. linux自动创建设备节点