账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    python 递归问题 与列表remove的疑问
    48
    0

    问题描述

    为什么对code_3进行操作,会影响code_2的值呢?
    本来两者是没有关系的呀。

    问题出现的环境背景及自己尝试过哪些方法

    个人理解 我在前几行代码进行 赋值 ,在for循环里操作,不会影响 code——2的值,但是我debug发现,code_2的值也发生了改变。。
    不懂为什么会这样,Python 不是逐行翻译的吗。。

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    code=[1,2,3,4,5]
    code_1=code
    # ————————————————————
    for i in code:  # code 是 含 'A'这样的数组
        print(i)
        for k in code_1:
            print(k)
        code_1.remove(i)
        
    

    你期待的结果是什么?实际看到的错误信息又是什么?

    我期待的是:code和code_1互相不影响,可是 我删除了code1的元素,为啥code 元素也会被删除 。。。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 在Python中,递归问题通常是通过函数或类来解决的。以下是一个例子:

      python def remove_duplicates(lst): if not lst: return [] else: result = remove_duplicates(lst[1:]) return [lst[0]] + result

      在这个例子中,我们定义了一个名为remove_duplicates的函数,它接受一个列表作为参数。如果列表为空,那么函数返回一个空列表。否则,函数对列表的第二个元素调用自身,然后将第一个元素添加到结果列表中,最后返回结果列表。

      关于列表remove_duplicates中的问题,它是如何工作的?

      首先,函数remove_duplicates会检查列表是否为空。如果为空,那么函数返回一个空列表。这是因为,如果列表为空,那么它就没有可以重复的元素,所以我们不需要返回任何内容。

      如果列表不为空,那么函数会递归地对列表的第二个元素调用自身。这个过程会一直持续,直到列表为空。在这个过程中,函数会删除重复的元素,并将它们添加到结果列表中。

      最后,函数返回结果列表,其中包含所有不重复的元素。

      举个例子,如果我们有一个列表[1, 2, 3, 2, 1, 5, 3],那么函数将返回[1, 2, 3, 5]。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部