我忘记了我的Oracle用户名和密码,因此无法使用它.我的Oracle版本是11.2.0.1.0(11g).我咨询了互联网.他们让我执行像'SYSDBA'这样的命令,但我无法这样做,因为我在命令提示符屏幕上给出了'SYSDBA',它将命令作为用户名,然后要求输入密码.我无法执行他们建议的任何命令,因为我输入的内容被视为用户名,随后会询问密码并发生错误.
我希望将“nums”数组的最后 k 个元素带到第一个元素。比如,输入:
nums = [1,2,3,4,5,6,7], k = 3
Run Code Online (Sandbox Code Playgroud)
输出:
[5,6,7,1,2,3,4]
Run Code Online (Sandbox Code Playgroud)
我有以下代码:
class Solution(object):
def rotate(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: None Do not return anything, modify nums in-place instead.
"""
n = len(nums)
k = k % n
nums[:] = nums[n-k:] + nums[:n-k]
Run Code Online (Sandbox Code Playgroud)
这工作得很好,即将最后 k 个元素带到开头,并且 nums 显示 [5,6,7,1,2,3,4]。但是,一旦我输入以下内容nums = nums[n-k:] + nums[:n-k],它就会显示生成的 nums 数组与原始数组 [1,2,3,4,5,6,7] 相同。
我的问题是,为什么产量会发生变化?在谷歌搜索和重新编辑该论坛中与“列表引用和复制”相关的某些其他线程时,我可以意识到这与nums = 列表引用有关,但nums[:]就像只是列表的副本。但话说回来,为什么产量会发生这种变化呢?这两个命令内部发生了什么?
我似乎nums还nums[:]不清楚。请帮忙。