【Python系列】利用切片移动元素位置

[复制链接]
发表于 2026-1-27 08:28:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
💝💝💝欢迎来到我的博客,很高兴可以或许在这里和您见面!渴望您在这里可以感受到一份轻松愉快的氛围,不但可以得到风趣的内容和知识,也可以各抒己见、分享您的想法和看法。

  

  • 保举:kwan 的首页,连续学习,不绝总结,共同进步,活到老学到老
  • 导航

    • 檀越剑指大厂系列:全面总结 java 核心技能,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:具体总结了常用数据库 mysql 技能点,以及工作中碰到的 mysql 题目等
    • 新空间代码工作室:提供各种软件服务,承接各种结业计划,结业论文等
    • 懒人运维系列:总结好用的下令,解放双手不香吗?能用一个下令完成绝不消两个利用
    • 数据布局与算法系列:总结数据布局和算法,差别范例针对性练习,提升编程头脑,剑指大厂

  非常等待和您一起在这个小小的网络天下里共同探索、学习和发展。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
  

一.根本先容


1.切片底子

在 Python 中,切片是指从序列范例(如列表、字符串、元组等)中提取子序列的过程。切片的根本语法如下:
  1. sequence[start:stop:step]
复制代码


  • start:切片开始的位置(包罗该位置)。假如省略,切片从序列的开始位置开始。
  • stop:切片竣事的位置(不包罗该位置)。假如省略,切片不停取到序列的末了。
  • step:步长,即选取元素的隔断。假如省略,默以为 1,即依次选取每个元素。
2. 获取子列表

切片可以用来快速获取列表的一部分。比方,要从列表中获取前三个元素,可以利用以下切片:
  1. my_list = [1, 2, 3, 4, 5]
  2. sub_list = my_list[:3]
  3. print(sub_list)  # 输出: [1, 2, 3]
复制代码
3. 反转列表

切片也可以用于反转列表。通过设置步长为 -1,可以从列表的末了开始向前选取元素:
  1. my_list = [1, 2, 3, 4, 5]
  2. reversed_list = my_list[::-1]
  3. print(reversed_list)  # 输出: [5, 4, 3, 2, 1]
复制代码
4. 跳过元素

通过设置步长 step,你可以跳过列表中的某些元素。比方,获取列表中的偶数位置元素:
  1. my_list = [1, 2, 3, 4, 5]
  2. even_index_elements = my_list[::2]
  3. print(even_index_elements)  # 输出: [1, 3, 5]
复制代码
5. 从中央开始切片

假如你只想从列表的中央开始获取元素,可以设置 start 参数:
  1. my_list = [1, 2, 3, 4, 5]
  2. middle_elements = my_list[2:]
  3. print(middle_elements)  # 输出: [3, 4, 5]
复制代码
6. 动态切片

切片的参数可以是变量,这使得切片更加机动和动态:
  1. start = 1
  2. end = 4
  3. step = 2
  4. my_list = [1, 2, 3, 4, 5]
  5. dynamic_slice = my_list[start:end:step]
  6. print(dynamic_slice)  # 输出: [2, 4]
复制代码
7. 切片与循环团结

切片可以与循环团结利用,对列表的子序列举行迭代处置处罚:
  1. my_list = [1, 2, 3, 4, 5]
  2. for item in my_list[::2]:
  3.     print(item)  # 依次打印 1, 3, 5
复制代码
8. 切片与列表推导式

切片可以与列表推导式团结,创建新的列表:
  1. my_list = [1, 2, 3, 4, 5]
  2. filtered_list = [x for x in my_list if x % 2 == 0]
  3. print(filtered_list)  # 输出: [2, 4]
复制代码
二.切片的注意事项

1. 索引越界

当 start 或 stop 参数超出列表的范围时,Python 会优雅地处置处罚这种情况,不会抛堕落误:
  1. my_list = [1, 2, 3, 4, 5]
  2. print(my_list[10:])  # 输出: []
复制代码
2. 负索引

Python 支持负索引,此中 -1 体现列表的末了一个元素:
  1. my_list = [1, 2, 3, 4, 5]
  2. print(my_list[-1])  # 输出: 5
复制代码
3. 步长为零

步长不能为零,否则 Python 会抛出 ValueError:
  1. my_list = [1, 2, 3, 4, 5]
  2. try:
  3.     print(my_list[0:5:0])
  4. except ValueError as e:
  5.     print(e)  # 输出: slice step cannot be zero
复制代码
三.代码实践


1.将第一个元素移到末了

  1. # 假设列表名为 my_list
  2. my_list = [1, 2, 3, 4, 5]
  3. # 将第1个元素移动到末尾
  4. my_list = my_list[1:] + my_list[:1]
  5. print(my_list)
复制代码
  [2, 3, 4, 5, 1]
  2.将第二个元素移到末了

  1. # 假设列表名为 my_list
  2. my_list = [1, 2, 3, 4, 5]
  3. # 弹出第二个元素并添加到列表末尾
  4. second_element = my_list.pop(1)
  5. my_list.append(second_element)
  6. print(my_list)
复制代码
  [1, 3, 4, 5, 2]
  3.将第二个元素移到末了

  1. # 假设列表名为 my_list
  2. my_list = [1, 2, 3, 4, 5]
  3. # 将第二个元素插入到列表末尾
  4. my_list.insert(len(my_list), my_list.pop(1))
  5. print(my_list)
复制代码
  [1, 3, 4, 5, 2]
  4.将第二个元素移到末了

  1. # 假设列表名为 my_list
  2. my_list = [1, 2, 3, 4, 5]
  3. # 使用列表推导式重新构建列表
  4. my_list = [x for i, x in enumerate(my_list) if i != 1] + [my_list[1]]
  5. print(my_list)
复制代码
  [1, 3, 4, 5, 2]
    以为有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有马虎,欢迎各位大佬批评品评指正!😄😄😄
  💘💘💘假如以为这篇文对你有资助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
  🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
  

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表