输出与 Python 中的 Stdout 不同

问题描述 投票:0回答:1

我是编程新手,正在尝试 Leetcode。该问题要求将答案存储在 nums1 中。当我打印 nums1 时,标准输出显示正确答案,但输出不一样?

enter image description here

class Solution(object):
    def merge(self, nums1, m, nums2, n):
        """
        :type nums1: List[int]
        :type m: int
        :type nums2: List[int]
        :type n: int
        :rtype: None Do not return anything, modify nums1 in-place instead.
        """

        for x in range(n):
            nums1.remove(0)

        nums1 = nums1 + nums2
        nums1.sort()
        print(nums1)

这就是它所显示的:

enter image description here

python list
1个回答
0
投票

LeetCode 只记住初始

nums1
列表的内存引用,因此如果使用
nums1 = nums1 + nums2
更新它,原始数组将不会被更新,而是创建一个新的引用。奇怪,我知道。

解决此问题的方法是使用

nums1.extend(nums2)
来修改列表,而不是
nums1 = nums1 + nums2

© www.soinside.com 2019 - 2024. All rights reserved.