Python面试题之下面代码会输出什么
def f(x,l=[]):for i in range(x):l.append(i*i)print lf(2) f(3,[3,2,1]) f(3)
答案:
[0, 1] [3, 2, 1, 0, 1, 4] [0, 1, 0, 1, 4]
呃?
第一个函数调用十分明显,for循环先后将0和1添加至了空列表l
中。l
是变量的名字,指向内存中存储的一个列表。
第二个函数调用在一块新的内存中创建了新的列表。l
这时指向了新生成的列表。之后再往新列表中添加0、1、2和4。很棒吧。
第三个函数调用的结果就有些奇怪了。它使用了之前内存地址中存储的旧列表。这就是为什么它的前两个元素是0和1了。
不明白的话就试着运行下面的代码吧:
l_mem = []l = l_mem # the first call for i in range(2):l.append(i*i)print l # [0, 1]l = [3,2,1] # the second call for i in range(3):l.append(i*i)print l # [3, 2, 1, 0, 1, 4]l = l_mem # the third call for i in range(3):l.append(i*i)print l # [0, 1, 0, 1, 4]
本文首发于Python黑洞网,csdn同步跟新
Python面试题之下面代码会输出什么相关推荐
- python手写代码面试_常见Python面试题—手写代码系列
原标题:常见Python面试题-手写代码系列 1.如何反向迭代一个序列 #如果是一个list,最快的方法使用reverse tempList = [1,2,3,4] tempList.reverse( ...
- python手写代码面试_常见Python面试题 — 手写代码系列
原标题:常见Python面试题 - 手写代码系列 作者: Peace & Love 来自:https://blog.csdn.net/u013205877/article/details/77 ...
- python面试代码题_常见python面试题-手写代码系列
原博文 2019-08-13 13:50 − 1.如何反向迭代一个序列 #如果是一个list,最快的方法使用reversetempList = [1,2,3,4]tempList.reverse()f ...
- 常见Python面试题 — 手写代码系列
1.如何反向迭代一个序列 #如果是一个list,最快的方法使用reverse tempList = [1,2,3,4] tempList.reverse() for x in tempList: pr ...
- 666!Python 仅用3行代码就输出花式字符串
点击上方"编程派",选择设为"设为星标" 优质文章,第一时间送达! 高逼格的日志 相信Java程序员看到上面的图,一定不会陌生.没错,springboot的启动 ...
- 一道Python面试题,据说大部分人都中招了,纷纷开始怀疑自己
无意间,看到这么一道Py无意间,看到这么一道Python面试题:以下代码将输出什么? def testFun(): temp = [lambda x : i*x for i in range(4)] ...
- python fun_一道神奇的Python面试题,你会吗?
原标题:一道神奇的Python面试题,你会吗? 无意间,看到这么一道Python面试题:以下代码将输出什么? def testFun: temp = [lambda x : i*x for i in ...
- 浅入深谈:一道Python面试题,让我明白了殊途同归,却开始怀疑自己
无意间,看到这么一道Python面试题:以下代码将输出什么? 脑中默默一想,这还用说么,肯定是: 0 2 4 6 最后一看答案,竟然是: 6 6 6 6 于是带着怀疑的心态(其实是不服输,不认错),打 ...
- 一道Python面试题
无意间,看到这么一道Python面试题:以下代码将输出什么? def testFun(): temp = [lambda x : i*x for i in range(4)] return temp ...
最新文章
- 一文全面了解基于内容的推荐算法
- AI开发者大会:2020年7月3日09:30--09:50司罗《为商业搭建语言桥梁》
- 开课提醒 | 听顶会大佬透析前沿算法,解密人脸识别技术
- 在Linux系统下防火墙开放所需要访问的端口号
- OPENSSL ENGINE机制
- 4种不同类别的机器学习概述
- Flutter 底部向上动画弹出的菜单选项
- IntelliJ IDEA lombok插件的安装和使用
- 分析攻击IP来源地并画出饼图 1
- Mycat的简单使用(三)【分库分表】
- python pdfminer的功能_python:pdfminer接口测试
- IMTOKEN 2.9.9官网1:1双端,用户管理系统,后台可查询用户使用情况
- 外国官方网站下载文件速度缓慢
- 互联网寒冬,如何花三个月东山再起........
- 机器学习算法-EM算法
- J.P. Morgan:AI for Investing(脱水解读)
- 一家之言:说说 JavaScript 计时器的工作原理
- 新松机器人BG总裁高峰_新松机器人总裁曲道奎博士出席高工机器人产业高峰论坛...
- kafka代码初步涉猎,用代码发送消息到客户端
- 程序员该用哪种姿势来理财
热门文章
- ASP基础教程之ASP AdRotator 组件的使用
- redis之proxy集群之twemproxy
- Redis集群之官方集群
- python分片上传_python 分片上传大格式
- xcode 怎么调用midi开发录音_音频应用专业录音声卡:雅马哈UR242声卡教程
- 4.c++模式设计-建造者模式
- STM32学习——MPU6050姿态传感器
- TCP/IP数据包结构详解
- s3c6410存储器映射
- python :使用 __getitem__ 和 __iter__ 可以使类成为一个迭代器