当前位置: 首页 > news >正文

nums[:]数组切片

问题:给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

使用代码如下没有办法通过测试示例,必须将最后一行代码改成  nums[:]=nums[-k:]+nums[:-k]切片形式:

原因:列表的切片操作 nums[start:end] 不会修改原列表,而是返回一个新的列表对象

例如:

nums = [1, 2, 3, 4, 5]
print(nums[-2:])  # 输出 [4, 5]
print(nums[:-2])  # 输出 [1, 2, 3]
print(nums)       # 原列表 nums 没有改变,仍为 [1, 2, 3, 4, 5]

拼接两个切片:

  • nums[-k:] + nums[:-k] 是将两个切片的结果拼接成一个新的列表。
  • 它不会影响原来的 nums 列表。
nums = [1, 2, 3, 4, 5]
k = 2result = nums[-k:] + nums[:-k]
print(result)  # 输出 [4, 5, 1, 2, 3]
print(nums)    # 原列表 nums 不变,仍为 [1, 2, 3, 4, 5]

 尽管我们令nums= nums[-k:] + nums[:-k],它其实相当于重新创建了一个列表,只是名称一样而已,但已经指向了别的地址了

切片赋值:nums[:] = nums[-k:] + nums[:-k]
  • nums[:] 是对原列表的切片赋值,它会修改原列表的内容,而不会更改 nums 的引用。
  • 换句话说,nums[:] 表示“更新整个列表的内容为右侧表达式的结果”。
操作是否修改原列表 nums备注
nums[-k:] + nums[:-k]生成一个新列表,不影响原列表 nums
nums = nums[-k:] + nums[:-k]否(仅改变引用)创建新列表并重新赋值给 nums,原列表可能被丢弃。
nums[:] = nums[-k:] + nums[:-k]更新原列表 nums 的内容为右侧表达式的结果,但列表引用保持不变。

http://www.lryc.cn/news/519678.html

相关文章:

  • 【Arthas 】Can not find Arthas under local: /root/.arthas/lib 解决办法
  • 录用率23%!CCF推荐-B类,Early Access即可被SCI数据库收录,中美作者占比过半
  • IP 地址与蜜罐技术
  • Vue_API文档
  • WebSocket 设计思路
  • Jenkins持续集成与交付安装配置
  • ESP32作为Wi-Fi AP模式的测试
  • 【爬虫】单个网站链接爬取文献数据:标题、摘要、作者等信息
  • Android RIL(Radio Interface Layer)全面概述和知识要点(3万字长文)
  • leetcode_2816. 翻倍以链表形式表示的数字
  • 【论文阅读】MAMBA系列学习
  • MySQL教程之:批量使用mysql
  • 17_Redis管道技术
  • 【LC】3270. 求出数字答案
  • 【redis】ubuntu18安装redis7
  • d2j-dex2jar classes.dex 执行报错:not support version 问题解决
  • 智慧城市应急指挥中心系统平台建设方案
  • QT鼠标、键盘事件
  • Ceph分布式存储集群,不仅仅是一个简单的对象存储解决方案
  • DSP+Simulink——点亮LED灯(TMSDSP28379D)超详细
  • Linux 环境下编译安装 OpenCV 4.8.x
  • phpenc加密程序源码
  • 学英语学Elasticsearch:04 Elastic integrations 工具箱实现对第三方数据源的采集、存储、可视化,开箱即用
  • 2024.10.12 校招 实习 内推 面经
  • ios越狱脚本巨魔商店安装教程
  • 浅谈容灾技术方案详解
  • 时序数据库InfluxDB—介绍与性能测试
  • Python的循环
  • 【机器学习】聚类评价指标之福尔克斯–马洛斯指数(Fowlkes–Mallows Index, FMI)
  • 分享一次面试经历