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

s[:] = reversed(s) 和 s = reversed(s)的区别

注意s 和 t是指针 其中储存的列表才是真实的,第一种一开始s和t都指向初始列表,后来s指向一个新的反转列表了。第二种是s t 都指向初始列表 然后 初始列表反转了 s t 指向这个发生反转的列表了

  1. s = reversed(s)

    • 这只是给变量 s 重新赋值。

    • 它并没有修改原来的列表对象,而是创建了一个新的迭代器(reversed 返回的是迭代器)。

    • 外部引用原列表的地方不会改变。

s = ["h","e","l","l","o"]
t = s       # t 引用同一个列表
s = reversed(s)   # s 现在指向一个新的迭代器
print(list(s))    # ['o','l','l','e','h']
print(t)          # ['h','e','l','l','o'] 原列表没有变化
  1. s[:] = reversed(s)

    • s[:] 表示 列表的全部切片,相当于对原列表的内容进行替换。

    • 这样可以 原地修改列表,保证外部引用也能看到变化。

s = ["h","e","l","l","o"]
t = s
s[:] = reversed(s)   # 原地修改列表
print(list(s))       # ['o','l','l','e','h']
print(t)              # ['o','l','l','e','h'] t 也变化了

http://www.xdnf.cn/news/19556.html

相关文章:

  • 【Proteus仿真】点亮小灯系列仿真——小灯闪烁/流水灯/交通灯
  • R3:适用于 .NET 的新一代响应式扩展库,事件订阅流
  • TFS-2002《Fuzzy Clustering With Viewpoints》
  • 嵌入式ARM程序高级调试技能:19.qumu arm elf无法生成coredump
  • 接口测试:如何定位BUG的产生原因
  • nginx-增加VTS模块
  • 数据结构八股
  • 数据结构(C语言篇):(八)栈
  • vscode+EIDE+Clangd环境导入keil C51以及MDK工程
  • shell脚本第六阶段---三剑客之sed
  • C++日志系统:高效异步日志实现解析
  • LeetCode 36. 有效的数独 - 解题思路与实现详解
  • ans.1中的对象标识符OBJECT_IDENTIFIER----OID
  • 【机器学习基础】决策树算法原理及其在无人驾驶技术中的应用
  • Matplotlib:让数据在Python中跳舞的魔法画笔![特殊字符]
  • 基于FPGA的正弦波和及滤波(已通过仿真和上板)
  • 如何确定虚拟机的IP
  • DVWA靶场通关笔记-SQL Injection (Impossible级别)
  • [ Android Audio 篇 ] 高通平台 Android AudioRecord 多通道录音
  • LangChain中Prompt处理机制的技术架构与核心思想分析
  • STL库——stack/queue(类函数学习)
  • 切片语法[::-1]及其可用的类型
  • 基于STM32设计的智能家居控制系统(华为云IOT)_275
  • 2023年IEEE IOTJ SCI1区TOP,动态环境下无人机目标覆盖任务路径规划,深度解析+性能实测
  • KingbaseES JDBC 驱动详解:连接、配置与最佳实践
  • 介绍Ansible和实施Ansible PlayBook
  • pinia状态管理工具
  • Redis核心原理与Java应用实践
  • 洞悉边界:软件测试中边界值分析的艺术与科学
  • OpenJDK 17 解释器分发表与安全点表机制解析