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

Python中字符串常用的操作方法

在Python中,字符串是不可变序列类型,提供了丰富的内置方法。以下是常用的字符串操作方法及示例:

1. 大小写转换

  • lower() 转小写

  • upper() 转大写

  • capitalize() 首字母大写

  • title() 每个单词首字母大写

  • swapcase() 大小写互换 

print("HELLO".lower()) # hello
print("hello".upper())  # HELLO
print("python".capitalize())  # Python
print("hello world".title())  # Hello World
print("PyThon".swapcase())  # pYtHON

2. 查找与替换

  • find(sub, start, end):查找子串,返回索引,找不到返回-1,start 和 end 为可选参数

  • rfind(sub):从右侧查找子串 

  • index(sub):类似find(),但找不到时会报错

  • replace(old, new, count):替换子串,count指定替换次数为可选参数
print("apple".find("p")) #1
print("apple".find("p",3)) # -1print("apple".rfind("p")) # 2
print("apple".index("p")) # 1 找不到报错
print("banana".replace("a", "o", 2)) # bonona

3. 字符串判断

  • startswith(prefix, start, end):是否以指定前缀开头,start 和 end 为可选参数

  • endswith(suffix):是否以指定后缀结尾 

  • isalpha():是否全为字母 

  • isdigit():是否全为数字

  • isalnum():是否全为字母或数字

  • isspace():是否全为空白符

print("hello".startswith("he")) # True
print("hello".endswith("lo")) # True
print("123ABC".isdigit()) # False
print("123".isdigit()) # True
print("123ABC".isalnum()) # True
print("\t \n".isspace()) # True

4. 分割与连接

  • split(sep,maxsplit) :按分隔符分割为列表

  • rsplit(sep,maxsplit): 从右侧分割字符

  • splitlines():按行分割

  • join(iterable):连接字符串序列

print("a,b,c".split(",",1)) #['a', 'b,c']
print("a,b,c".rsplit(",",1)) #['a,b', 'c']
print("line1\nline2".splitlines()) # ['line1', 'line2']
print("!".join(["a", "b", "c"]) ) #a!b!c

5. 空白处理

  • strip():移除两侧空白或指定字符

  • lstrip():移除左侧空白或指定字符

  • rstrip():移除右侧空白或指定字符

print("  hello  ".strip()) # hello
print("xxxworld".lstrip("xxx")) # world
print("helloxxx".rstrip("xxx")) # hello

6. 对齐与填充

  • center(width):居中填充

  • ljust(width):左对齐填充

  • rjust(width):右对齐填充

  • zfill(width):左侧用0填充

print("center".center(8,'0')) # 0center0
print("hello".ljust(8,'0')) # hello000
print("hello".rjust(8,'0')) #000hello
print("hello".zfill(10)) #00000hello

7. 格式化

  • f 格式化字符串

  • format() 格式化表达式

name = "Alice"
print(f"Hello, {name}!") #Hello, Alice!
print("{0} + {1} = {2}".format(1, 2, 3)) #1 + 2 = 3

8. 其他操作

  • len(str):获取字符串长度

  • in:检查字符串存在某个字符

  • not in:检查字符串不存在某个字符

  • count(sub,start,end):统计子串出现次数

  • encode(encoding="utf-8"):编码为字节

print(len("hello world")) # 11
print("a" in("apple")) # True
print("o" not in("apple")) #True
print("aaabbbccc".count("a",0,2)) #2
print("你好".encode(encoding="utf-8")) # b'\xe4\xbd\xa0\xe5\xa5\xbd'

掌握这些方法可高效处理文本数据,注意字符串不可变性:所有操作均返回新字符串,原字符串不变。

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

相关文章:

  • Linux TCP/IP协议栈中的TCP输入处理:net/ipv4/tcp_input.c解析
  • 学习C++、QT---03(C++的输入输出、C++的基本数据类型介绍)
  • AI与SEO关键词协同进化
  • IEC61850 通信协议测试验证方法详解
  • 解锁K-近邻算法:数据挖掘的秘密武器
  • 华为云Flexus+DeepSeek征文 | 基于Flexus X实例的金融AI Agent开发:智能风控与交易决策系统
  • 【AI论文】扩散二元性
  • 面试题-定义一个函数入参数是any类型,返回值是string类型,如何写出这个函数,代码示例
  • ncu学习笔记01——合并访存
  • 系统化的Node.js服务器搭建攻略
  • 将Python的JSON字符串转换为JSON
  • UE5 游戏模板 —— FirstShootGame
  • Docker简单介绍与使用以及下载对应镜像(项目前置)
  • 【软考高级系统架构论文】论湖仓一体架构及其应用
  • RNN工作原理和架构
  • Python的6万张图像数据集CIFAR-10和CIFAR-100说明
  • Redis哨兵模式的学习(三)
  • STM32F103_LL库+寄存器学习笔记12.3 - 串口DMA高效收发实战3:支持多实例化的版本
  • 【24】二维码数据集(有v5/v8模型)/YOLO二维码检测
  • 项目拓展-Spring实现策略类统一管理
  • 【Elasticsearch】脚本(Script)
  • Duende Identity Server学习之一:认证服务器及一个Oidc/OAuth认证、用于Machine 2 Machine的客户端
  • 零基础学习Redis(12) -- Java连接redis服务器
  • 跟着AI学习C# Day29
  • 【LeetCode#第198题】打家劫舍(一维dp)
  • 【论文笔记】【强化微调】T-GRPO:对视频数据进行强化微调
  • MySQL误删数据急救指南:基于Binlog日志的实战恢复详解
  • ESP32 ESP-IDF Ubuntu平台工具链的标准设置
  • 山姆·奥特曼:从YC到OpenAI,硅谷创新之星的崛起
  • 01-驱动开发开篇