python 3如何打印(list,list.pop())?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python 3如何打印(list,list.pop())?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1360字,纯文字阅读大概需要2分钟。
内容图文
![python 3如何打印(list,list.pop())?](/upload/InfoBanner/zyjiaocheng/811/5d9b0e8d5fae4cbe8797c94d2b7336e1.jpg)
参见英文答案 > Is it safe to rely on Python function arguments evaluation order? 2个
> How to prove that parameter evaluation is “left to right” in Python? 6个
对于带有多个参数的print(),我认为它会逐一评估它们.但是,以下代码
a = [1, 2, 3, 4]
print(a, a[:], a.pop(), a, a[:])
版画
[1, 2, 3] [1, 2, 3, 4] 4 [1, 2, 3] [1, 2, 3]
我以为python会评估第一个,然后是[:],然后是a.pop(),然后是a和a [:],它会打印出来
[1, 2, 3, 4] [1, 2, 3, 4] 4 [1, 2, 3] [1, 2, 3]
那究竟是如何运作的呢?
解决方法:
如果你调用一个函数(任何函数).首先从左到右评估参数.所以你的代码相当于:
arg1 = a
arg2 = a[:]
arg3 = a.pop()
arg4 = a[:]
print(arg1,arg2,arg3,arg4)
(当然,变量arg1,arg2等在Python级别不存在)
因此,arg1将引用与a相同的列表,接下来我们制作a的浅表副本并将其存储在arg2中,然后我们从a弹出,最后一项存储在arg3中,最后我们制作另一个浅拷贝(在点)并将其存储在arg4中.
这意味着:
arg1 = a # arg1 = a = [1,2,3,4]
arg2 = a[:] # arg2 = [1,2,3,4]
arg3 = a.pop() # arg1 = a = [1,2,3], arg3 = 4
arg4 = a[:] # arg4 = [1,2,3]
print(arg1,arg2,arg3,arg4)
接下来使用这些参数调用print(..)语句,因此打印就像我们在注释中看到的那样.所以它将打印:
[1, 2, 3] [1, 2, 3, 4] 4 [1, 2, 3]
因此,重要的部分是a.pop()不仅会返回a和arg1引用的列表的最后一个元素,还会修改该列表(删除最后一个元素).因此,结果arg1和a仍然引用相同的列表,但它被修改.
内容总结
以上是互联网集市为您收集整理的python 3如何打印(list,list.pop())?全部内容,希望文章能够帮你解决python 3如何打印(list,list.pop())?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。