微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么这段代码中 arr2 被改变了?甚至有人提到

如何解决为什么这段代码中 arr2 被改变了?甚至有人提到

这是来自 leetcode 问题 1122 (https://leetcode.com/problems/relative-sort-array/)。 问题:

给定两个数组 arr1 和 arr2,arr2 的元素是不同的,并且 arr2 中的所有元素也在 arr1 中。 对 arr1 的元素进行排序,使得 arr1 中项目的相对顺序与 arr2 中的相同。没有出现在 arr2 中的元素应该按升序放在 arr1 的末尾。

这是我写的代码

class Solution:
    def relativeSortArray(self,arr1,arr2):
        res = arr2
        
        print(arr2)
        for i in arr1:
            if i in res:
                res.insert(res.index(i),i)
            else:
                res.append(i)
        print(arr2)
        
        for i in arr2:
            res.pop(res.index(i))
        return res

出于某种原因,在第一个 for 循环之后 arr2 与 res 相同。有人可以解释为什么吗?在这个 for 循环中甚至没有提到 arr2。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。