首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python初学者问题:有人能告诉我为什么输出是[1,1,1,1,2,3]吗?

这个问题涉及到Python中的列表和变量的赋值机制。假设代码如下:

代码语言:txt
复制
a = [1, 1, 1, 1, 2, 3]
b = a
b[0] = 0

输出结果为[0, 1, 1, 1, 2, 3],而不是[1, 1, 1, 1, 2, 3]。这是因为在Python中,列表是可变对象,而变量是对象的引用。

当执行b = a时,实际上是将变量b指向了列表a所在的内存地址。因此,ab指向同一个列表对象。

当执行b[0] = 0时,修改了列表中索引为0的元素的值。由于ab指向同一个列表对象,所以a中的对应元素也被修改了。

因此,最终输出的结果为[0, 1, 1, 1, 2, 3]

这种现象称为"引用传递",即变量存储的是对象的引用而不是对象本身。如果想要避免这种情况,可以使用copy模块中的copy()函数创建一个新的列表对象,例如:

代码语言:txt
复制
import copy

a = [1, 1, 1, 1, 2, 3]
b = copy.copy(a)
b[0] = 0

这样,ab就分别指向了两个独立的列表对象,互不影响。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

开学第一课:拜托,一定不要这样问Python问题

5.请问你会用Python做网站?/请问群里有懂Python做网站的? 6. ? 7.我的代码可以运行,但是结果不对,如下,我该怎么办? ? 8. ? 9. ?...10.群里有人吗,谁能告诉我这个怎么办? ? 10.老师,我有个代码,在IDLE和PyCharm运行正常,但是VSCode和Spyder运行有问题,怎么办? 11....(发一段代码截图,且需要放大很多倍才能勉强看清)大家帮忙看看这段代码哪里有问题啊? 18. ? 19.我有个特别特别简单的问题,但在网上就是查不到解决办法,你告诉我该怎么办?...23.我自己的老师说我的程序中至少有3处错误,又不告诉我哪里有错误,我找不出来,你帮我找出来改一下? 24.老师,如果要在窗口上显示图片,应该怎么做?需要注意什么?...举手之劳很少有人会拒绝,但是如果需要花费大量时间来猜你到底问的是什么,需要为了解决这个问题专门搭建环境安装扩展库,需要照着你的代码截图自己敲一遍,需要花大量时间来设计测试数据并且根据你提供的几行代码片段甚至压缩到不能再少的几行出错提示来推测代码是什么样子以及为什么出错和怎么修改

56310

专访Keras之父:关于深度学习、Keras的诞生和给初学者的建议

告诉我们你怎么开始的?是什么让你对深度学习开始感兴趣?...你为什么觉得这是有必要的? Francois Chollet:TensorFlow一个非常强大的框架,但是它长期以来一直受到可用性问题的困扰,特别是它是一个庞大的、有时令人困惑的API。...问:你告诉我们你生命里的一天是什么样的? Francois Chollet:不是很吸引人,主要是review代码,与人交谈,写设计文档,等等。我仍然编写大量的代码。...如果你的资源有限,那么不要把时间花在担心GPU上,而是担心你是否在处理正确的问题,是否在提出正确的问题。 问:你一直“AI伦理”的倡导者。你分享一些在构建“AI产品”时必须注意的方面?...问:在我们结束之前,对于那些对如何开启深度学习感到不知所措的初学者,你有什么建议?

76940
  • 《Flask Web开发 基于Python的Web应用开发实战》简评

    正文 《Flask Web开发 基于Python的Web应用开发实战》,O'Reilly"动物书系列"的"狗书",应该是很多Flask初学者被推荐使用的入门书,但是这本书真的适合初学者?...模板渲染"过时"了.........?...为什么必然呢?跳过这一章不行吗?因为这本书的内容一环扣一环,不把这个问题解决,后续的内容就无法推进,对于初学者,答案明显不行,这是学到一定地步才能做到的。...在我看来初学者编写视图函数,操作ORM,学会使用钩子,配置跨域,已经能够完成一个简单的web应用了。而数据库迁移、工厂函数、蓝本、单元测试等,不是一个初学者hold的住的内容?...即使跳开初学者这一原因,就现在而言,我也不是很喜欢使用Flask的工程化结构,为什么?这可能需要先明确一点,"我为什么要使用Flask?",因为轻便,快捷。

    1.1K00

    专访Keras之父:关于深度学习、Keras的诞生和给初学者的建议

    告诉我们你怎么开始的?是什么让你对深度学习开始感兴趣?...你为什么觉得这是有必要的? Francois Chollet:TensorFlow一个非常强大的框架,但是它长期以来一直受到可用性问题的困扰,特别是它是一个庞大的、有时令人困惑的API。...问:你告诉我们你生命里的一天是什么样的Francois Chollet:不是很吸引人,主要是review代码,与人交谈,写设计文档,等等。我仍然编写大量的代码。...你分享一些在构建“AI产品”时必须注意的方面Francois Chollet:其他人对机器学习的伦理问题的讨论比我好得多。比如Kate Crawford,还有Meredith Whittaker。...问:在我们结束之前,对于那些对如何开启深度学习感到不知所措的初学者,你有什么建议François Chollet:10年后,你买到一本教科书,上面会可以很好地总结2010年到2020年期间AI的进展

    51420

    系统Prompt长达1700个token,ChatGPT变「懒」的原因找到了?

    有人表示:「没有证据表明较长的系统 prompt 会影响输出质量,我不知道为什么每个人都认为他们比 OpenAI 更了解自己。」...并举例说明谷歌的 Bard(Gemini Pro 版本)存在相关问题有人从商用 GPT 的角度指出:「这难道不是人工智能企业塑造其 GPT 的基本方式?...保密对于商业公司来说不是很合理?他们如何调整其 LLM 有价值的知识产权。」...最后,还有网友继续抱怨「昨天我在编写 Python 代码中遇到了这个问题,它完成了代码的 90%,然后说最后一段逻辑太复杂了,但告诉我如何去做.........之后我开始了一个新的聊天,给了它自己写的 Python 代码,并说这个代码不完整 —— 你可以将它所需的行添加完整…… 然后 ChatGPT 就毫无问题地添加了代码。

    16810

    其实你就学不会 Python

    如果学会了程序语言,这些问题就都不是事了。那么,该学什么呢? 无数培训机构和网上资料都会告诉我们:Python!...Python 代码看起来很简单,只要几行就能解决许多麻烦的 Excel 问题,看起来真不错。 但真是如此?作为非专业人员,真能用 Python 来协助我们工作? 嘿嘿,只是看上去很美!...Python 用来处理结构化数据需要有一个叫 Pandas 的开源包,这东西不是 Python 的固有组件,你得自己再下载安装,过程就不太简单了,要配一堆让初学者晕死的东西。...用 DataFrame 处理结构化数据时,要绕到矩阵的思路上去,这会非常挑战初学者的理解力。 怎样才能正确输出部门人数呢?要用 size 函数,它才是用来查看各组的成员数。...这个被称为什么对象的东西,本质上大矩阵的子矩阵构成的集合,勉强也算是集合的集合了,但它并不能像普通集合那样直接用序号取某个成员(比如 group[0])。

    10310

    零基础转行学习python是否还在纠结?

    近期很多小伙伴问我,如果自己转行学习Python,完全0基础能否学会呢?Python的难度到底有多大?今天,小编就来为大家详细解读一下这个问题。 学习Python?...2、Python的哲学「做一件事情应该只有一种最好的方法」,对于初学者规范自己的学习有很大的帮助,同时也帮助初学者能够读懂其他人的代码。 3、养成良好的习惯。...但是我们不得不承认,还是会有人犯迷糊,上来就开干。...⑶、以能用起来,解决问题为指导原则 在工作中,需要的更多的一种解决问题的工程性思维,所以很多时候,我们掉包解决问题,就没必要自己造轮子。...Python 现在比较流行的 Script。 最重要的Python快速开发的特性能够让你敏捷验证你的想法,而不是把时间浪费在程序本身上,并且有丰厚的第三方库的支撑,也帮你节省时间!

    37010

    Python工程师进阶之道

    仅供参考 前言 上次在群里有同学又在问基础的问题,我不反感基础问题,就是比较反感不动脑子就贴图出来求解答的问题。有时我干脆不说话,有时我会给个地方让他去搜索。...刚看了《Python基础编程》或者任何其他的基础书籍,然后能把书上的代码敲下来(注意!敲下来,不是找个地方copy下来),运行了一下,发现输出结果,跟书上一样。...比方说,书上说了,敲下如下代码到hello.py文件中,然后python hello.py,得到正确的输出,说明你熟悉了print用法了。...对比下来你可能会发现只是少了第一行的# coding:utf-8,那么,这是为什么呢?...当然,我了解的实际情况,始终会有人即便工作(正式使用Python讨饭吃)时间不长,在意识上也能够领先那些工作多年的人很多。人跟人的情况还是不同的。

    50220

    学编程遇到问题,如何更好地提问?

    聊天群的好处,有很多人会看到你的问题,这里面很可能有人解决过类似的问题。即使没有现成的答案,一起讨论也有利于找到解决方案。...综上所述,我认为一个比较好的提问方式:在你尝试自己搜索后依然不能解决问题时,在聊天群里或者论坛上描述清楚你的问题,包括你要做什么,遇到了什么状况,你的代码、输出、报错信息,足够信息量的截图和代码片段,...对于一般的编程初学者,有些要求可能略苛刻。不过参考阅读,对于你应当会有帮助。毕竟没有人会一直停留在初学者的阶段,好的习惯越早养成越早受益。...我可以用 Bass-o-matic 文件转换工具将 AcmeCorp 文档转为 TeX 格式? 我的{程序、配置、SQL 语句}不运行了 我的视窗电脑出问题了,你帮忙?...我的程序不运行了,我认为系统工具X有问题 我安装 Linux 或 X 遇到困难,你帮忙? 我如何才能破解超级用户口令/盗取通道操作员的特权/查看某人的电子邮件?

    19920

    零基础转行Python开发怎么学习呢?

    转行零基础学Python编程开发难度大?从哪学起?近期很多小伙伴问我,如果自己转行学习Python,完全0基础能否学会呢?Python的难度到底有多大?今天,小编就来为大家详细解读一下这个问题。...学习 Python编程难? 首先,我们普及一下编程语言的基础知识。...2、Python的哲学「做一件事情应该只有一种最好的方法」,对于初学者规范自己的学习有很大的帮助,同时也帮助初学者能够读懂其他人的代码。 3、养成良好的习惯。...但是我们不得不承认,还是会有人犯迷糊,上来就开干。...⑶、以能用起来,解决问题为指导原则 在工作中,需要的更多的一种解决问题的工程性思维,所以很多时候,我们掉包解决问题,就没必要自己造轮子。

    30630

    如何才能学好Python?这里有你最想知道的答案

    一、关于Python最想问的问题 1.Python一种什么语言? Python一种计算机程序设计语言。...你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的Java语言等,Python他们其中的一种。...3.学习Python难度大Python一门高级语言,那么是不是越低级的程序越难学,越高级的程序越简单?表面上来说是这样的。...这是一种精神上的负担,有时候你无法弄清楚——为什么你写的代码没法奏效,或者为什么它就奏效了。 3、热爱Python 虽然听起来很老套,但这是事实。...5、系统的学习使你事半功倍 现在互联网很发达,发达到一个Python小白只需要几分钟就能找到几十G上百G学习资源,这些资源可以学?有用?答案可以,有用。

    88440

    为什么新手在编程社区提问得不到回答,甚至还会被嘲讽?

    搜索的关键如何描述问题,所以要学会看报错,找到报错中的关键信息。关于更多搜索的技巧,参考之前的文章《编程初学者如何使用搜索引擎》。 编程届有两个词:RTFM、STFW,含义我不解释,自己去查。...一个糟糕问题的例子: 哪位懂Python的帮我看下这是什么问题? (一张几十行的代码截图) 一个好问题的例子: 我的程序里将输入和变量比较大小,结果报错,请问为什么?...我Python3 报错:TypeError: '<' not supported between instances of 'int' and 'str' (代码+输出的截屏、代码文本) 一个更好问题的例子...: 我的程序里将输入和变量比较大小,结果报错,请问为什么?...(代码+输出的截屏、代码文本) 提问的本质还是思考。如果你提出一个好问题,必定是对问题思考后的结果。这对你本身也是一种练习。不思考就直接提问,既浪费了锻炼的机会,也很难得到满意答复。

    70810

    转行零基础该如何学Python?这些一定要明白!

    转行零基础学Python编程开发难度大?从哪学起?近期很多小伙伴问我,如果自己转行学习Python,完全0基础能否学会呢?Python的难度到底有多大?今天,小编就来为大家详细解读一下这个问题。...学习Python? 首先,我们普及一下编程语言的基础知识。...2、Python的哲学「做一件事情应该只有一种最好的方法」,对于初学者规范自己的学习有很大的帮助,同时也帮助初学者能够读懂其他人的代码。 3、养成良好的习惯。...但是我们不得不承认,还是会有人犯迷糊,上来就开干。...⑶、以能用起来,解决问题为指导原则 在工作中,需要的更多的一种解决问题的工程性思维,所以很多时候,我们掉包解决问题,就没必要自己造轮子。

    63620

    如果编程语言车,那么你开的……

    # Ada一辆坦克。 一辆永远不会抛锚的丑陋的坦克。如果你告诉人们你开的Ada,人们会忍不住大笑,但说真的,你真的想在战区开跑车? ?...# C++C赛车的增强版 它有几十个额外的功能,每250英里就会出现故障,但当它出现故障时,没有人找出哪里出了问题。 ? # Erlang一支车队 所有人都在合作,把你送到你想去的地方。...# PHP经过改造的多功能驾驶器 它很奇怪,很难操作,但每个人都想驾驶它。 ? # Python一辆很棒的初学者用车 你可以在没有驾照的情况下驾驶它。...# RubyPerl、Python和Smalltalk汽车发生三向碰撞时形成的汽车。 一位日本机械师找到了这些碎片,并组装了一辆汽车,许多司机认为这比零件的总和更好。...# Visual Basic一辆驾驶您的汽车。 ? 如果觉得哪一句直抵心窝,评论区告诉我吧。记得点赞哦。

    61320

    为什么你总是学不会Python,入门Python的4大陷阱ython,因为你全掉坑了

    市面上大部分的 Python 入门书籍的目录都非常长(毕竟缺少某个重要的知识点会被批),但是作为入门来说,真的需要所有的知识点都学习一遍?...而 Python 初学者却经常使用这种反人类直觉编程——写到哪,想到哪 ---- 现在换成 Python 问题。...,而是一个 Excel,你一下子知道修改哪个地方?...初学者往往就在这种细节中受到挫折。明明我看懂别人写的,但是解决自己问题时却懵逼了 这是因为,Python 中有一个知识点完美匹配"整体到细节"的过程!...但初学者一般不怎么会用 ---- 一定要学习自定义函数 为什么编程语言基本都有自定义函数的特性?因为这符合我们解决问题的思维逻辑。

    47720

    中文编程语言有哪些-为什么 Python 不是未来的编程语言?

    它会是未来的编程语言?它是完美无缺的编程语言有人发出了不同的声音。此前,InfoQ 中文站曾编译过相关文章,今天,我们翻译并分享了 Rhea 对 Python 的看法,权当一家之言吧!   ...因此,如果你在用 Python 编写代码遇到了什么问题,你很有可能通过 Google 搜索一下就能解决。这是因为有人已经遇到过和你一样的问题,并记下了一些有用的东西。   ...它对初学者很友好   这不仅是事实,因为它已经存在了几十年,让程序员得以有时间来编写优秀的教程。更重要的Python 的语法非常易于理解。   首先,无需指定数据类型。...你只需声明一个变量即可;Python 将会从上下文中理解它是整数、浮点值、布尔值还是其他值。这对初学者来说,一个巨大的优势。...想要做技术和工程方面的计算?请使用 SciPy。   想在数据处理和分析方面做大?那就试试 Pandas 吧。   想从人工智能开始?那为什么不使用 Scikit-Learn 呢?

    1.7K30

    如何掌握所有的程序语言

    对于初学者来说,其实没必要纠结到底要先学哪一种语言,再学哪一种。曾经有人给我发信问这种问题,纠结了好几个星期,结果一个语言都还没开始学。有这纠结的时间,其实都可以把他纠结过的语言全部掌握了。...在这个过程中,随着需求的出现,他可能会问这样的问题: 这个语言的“变量定义”是什么语法,需要“声明类型”,还是可以用“类型推导”? 它的“类型”是什么语法?是否支持“泛型”?...合理的入门语言 所以初学者要想事半功倍,就应该从一种“合理”的,没有明显严重问题的语言出发,掌握最关键的语言特性,然后由此把这些概念应用到其它语言。哪些合理的入门语言呢?...这就是为什么很多初学者感觉编程很难,我连 %d,%f,%.2f 的含义都记不住,还怎么学编程!...用 Scheme 实现的面向对象系统,跟 Java,C++,Python 之类的语言语法相去甚远,然而它却能帮助你理解任何这些 OOP 语言里面的“面向对象”这一概念,它甚至帮助你理解各种面向对象实现的差异

    53100

    Python 最难的问题

    Python最困难的问题比证明P = NP要容易一些,不过迄今仍然没有一个满意的解决,要知道,这个问题的实用的解决方案同样起着变革性的作用。...从名字上看告诉我们很多东西,很显然,这是一个加在解释器上的全局(从解释器的角度看)锁(从互斥或者类似角度看)。...网上的很多讨论组和留言板都充斥着来自Python初学者和专家的类似这样的问题——”为什么我全新的多线程Python程序运行得比其只有一个线程的时候还要慢?...并且为什么之前没有人去尝试过类似的事情? 这些实用的问题有着十分有趣的回答。GIL对诸如当前线程状态和为垃圾回收而用的堆分配对象这样的东西的访问提供着保护。...那么现在,我们已经获得了我们希望的,但这确实是一个好事? 基于线程的编程毫无疑问困难的。每当某个人觉得他了解关于线程如何工作的一切的时候,总是会悄无声息的出现一些新的问题

    86550

    Python 最难的问题你猜是什么?

    Python最困难的问题比证明P = NP要容易一些,不过迄今仍然没有一个满意的解决,要知道,这个问题的实用的解决方案同样起着变革性的作用。...从名字上看告诉我们很多东西,很显然,这是一个加在解释器上的全局(从解释器的角度看)锁(从互斥或者类似角度看)。...网上的很多讨论组和留言板都充斥着来自Python初学者和专家的类似这样的问题——”为什么我全新的多线程Python程序运行得比其只有一个线程的时候还要慢?...并且为什么之前没有人去尝试过类似的事情? 这些实用的问题有着十分有趣的回答。GIL对诸如当前线程状态和为垃圾回收而用的堆分配对象这样的东西的访问提供着保护。...那么现在,我们已经获得了我们希望的,但这确实是一个好事? 基于线程的编程毫无疑问困难的。每当某个人觉得他了解关于线程如何工作的一切的时候,总是会悄无声息的出现一些新的问题

    1.3K60

    《代码英雄》第三季(2):学习 BASIC

    这里面的第一个词 “初学者” 正是其不凡之处所在。在那时候,即使少量的编程工作,也需要一名博士来完成。这是一种极高的要求,需要有人接受专业教育,更不用说那些高级的硬件了。...现在,有许多语言初学者用作进入编程世界的光明大道。但如今发生了另一些重要的改变:编程入门不再只有进入大学学习一途。如果将入门的方式比作道路,那么,今日,条条大路通罗马。...我对初学者的建议始终是,选择一种语言并学习它,不要改变。我认为,初学者最容易犯错的,我先学习 Python,然后对它感到沮丧,说 Python 很烂,现在我要去用 JavaScript 了。...说到底,如果你确实是一名非常非常好的程序员,但是你做的东西没有人需要,没有人喜欢……它没有为世界增加价值,但是你真的真的非常擅长这门手艺,只是找不到产生影响的方法,我想你可能会深入研究并讨论所使用的工具...因为我觉得,你知道?他们会非常喜欢的,我也会因此度过愉快的时光。我想与其他所有人共享这些,这样他们就能了解它,甚至可以参与编程。

    61020
    领券