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

python学习笔记【1】对字符串的处理

一、反转字符串

代码

def reverse_str(original_string):reverse_string = []for char in original_string:reverse_string.insert(0,char)return ''.join(reverse_string)print(reverse_str("qwertyuiop"))

注释 

# 定义函数
def reverse_str(original_string):
# 定义一个空列表reverse_string = []
# 进循环 遍历字符串for char in original_string:
# 从空列表的0处开始插入reverse_string.insert(0,char)
# 返回的时候把空列表转为字符串return ''.join(reverse_string)print(reverse_str("Hello"))

详解关键步骤

# 从空列表的0处开始插入reverse_string.insert(0,char)

这里是调用了insert()函数, 是从空列表reverse_string的标号0处开始插入每一个char.

insert() 方法解析
  • 效果:后续插入的字符会不断推前,形成反转顺序。
    示例:字符串"abc"的构建过程:

    • 插入'a' → ['a']

    • 插入'b' → ['b', 'a']'a'后移)

    • 插入'c' → ['c', 'b', 'a']'b''a'后移)

# 返回的时候把空列表转为字符串return ''.join(reverse_string)

这里使用了  ' '.join()方法

''.join() 方法解析
  • 作用:将序列中的字符串元素连接成新字符串

  • 语法分隔符.join(可迭代对象)

  • 本例

    • 分隔符:''(空字符串 → 元素直接相连无间隙)

    • 可迭代对象:reversed_chars(存储反转字符的列表)

2. 执行流程示例(以 ['d', 'l', 'r', 'o', 'w'] 为例)

步骤操作内存变化
1创建空字符串''
2添加第一个字符 'd''d'
3添加第二个字符 'l''dl'
4添加第三个字符 'r''dlr'
5添加第四个字符 'o''dlro'
6添加第五个字符 'w''dlrow'

二、移除字符串

输入一个字符串和一个字符,移除字符串中所有的该特定字符,并返回

示例 1

输入

["Hello World", "l"]

输出

Heo Word

 代码

def remove_char(input_string, char_to_remove):result = []for char in input_string:if(char != char_to_remove):result.append(char)return ''.join(result)
print(remove_char("Hello World","l"))

详解关键步骤

 append() 方法解析
  • append():固定在列表末尾添加元素。
  • insert():可在指定位置插入元素。

append ()可以实现正向的列表赋值

  • 效果:后续插入的字符会不断向后推,形成正顺序。
    示例:字符串"abc"的构建过程:

    • 插入'a' → ['a']

    • 插入'b' → ['a', 'b']'a'前移

    • 插入'c' → ['a', 'b', 'c']'a''b'前移)

三、替换字符串

使用replace函数

def replace_substring(input_string, old_substring, new_substring):# 使用字符串的replace方法将子字符串替换为新字符串result_string = input_string.replace(old_substring, new_substring)return result_string
print(replace_substring("Hello World", "Hello", "Hi"))

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

相关文章:

  • 《Java Web程序设计》实验报告六 JSP+JDBC+MySQL实现登录注册
  • [vroom] 启发式算法(路径评估) | 局部搜索优化引擎 | 解决方案输出解析
  • 自助KTV选址指南与优化策略
  • 系统分析师-计算机系统-输入输出系统
  • 十三、K8s自定义资源Operator
  • 仅27M参数!SamOutVX轻量级语言模型刷新认知,小身材也有大智慧
  • 2025.7.12总结
  • Vue 项目打包部署还存在问题?你知道怎么做吧?
  • JVM回收
  • 内部类 示例
  • 【java安全】springBoot配置文件属性名自定义及属性值加密
  • 【6.1.0 漫画数据库技术选型】
  • 建造者模式(Builder)
  • 【Datawhale AI 夏令营】 用AI做带货视频评论分析(二)
  • 微服务环境下的灰度发布与金丝雀发布实战经验分享
  • 【电脑】硬盘驱动器(HDD)的基础知识
  • 消息认证码(message authentication code)MAC
  • skywalking镜像应用springboot的例子
  • 【设计模式】单例模式 饿汉式单例与懒汉式单例
  • jenkins自动化部署前端vue+docker项目
  • 并发--Callable vs Runnable
  • 代码随想录算法训练营第三十二天|LeetCode 509 斐波那契数,LeetCode 70 爬楼梯,LeetCode 746 使用最小花费爬楼梯
  • 笔记-分布式计算基础
  • 云计算三大服务模式深度解析:IaaS、PaaS、SaaS
  • zynq-PS篇——bperez77中DMA驱动注意事项
  • 飞算 JavaAI 智能编程助手:颠覆编程旧模式,重构新生态
  • 深入解析Java的G1收集器:原理、实战与优缺点
  • Umi-OCR 的 Docker安装(win制作镜像,Linux(Ubuntu Server 22.04)离线部署)
  • 企业采购成本越来越贵?根源在哪,数据怎么分析?
  • 奇哥面试记:SpringBoot整合RabbitMQ与高级特性,一不小心吊打面试官