开发者社区> 问答> 正文

为什么在Python中变量有时会绑定两个方向?

说我有

    x = [[0,0]]
    y = x[-1]

那么为什么

    y[1] += 1

    x = [[0,1]]
    y = [0,1] 

也就是说,我很困惑为什么它也改变了x的值,即使我只指定了与y有关的东西? 问题来源StackOverflow 地址:/questions/59385615/why-do-variables-sometimes-bind-both-directions-in-python

展开
收起
kun坤 2019-12-25 22:16:39 326 0
1 条回答
写回答
取消 提交回答
  • 如果你认为一个列表是内存中的一个可变对象,并且你认为你在修改这个列表,那么这是有意义的。 变量只是同一个列表的不同名称。 该守则相当于:

    list_obj = [0, 0]
    x = [ list_obj ]    # a list with list_obj as
                        # its single element
    y = list_obj        # same as x[-1], just
                        # another name for list_obj
    

    在这两种情况下修改list_obj[1]是很自然的。

    2019-12-25 22:16:44
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载