本文目录导读:

我来为你详细讲解Python字符串切片的实用案例。
基本语法
string[start:stop:step] # start: 起始索引(包含) # stop: 结束索引(不包含) # step: 步长(默认为1)
常用截取案例
基础截取
text = "Hello Python World" # 截取前5个字符 print(text[:5]) # Hello # 截取从索引6开始到结尾 print(text[6:]) # Python World # 截取中间部分 print(text[6:12]) # Python # 截取最后6个字符 print(text[-6:]) # World
实际应用场景
# 场景1:提取文件扩展名
filename = "report_2024.pdf"
extension = filename[-4:] # .pdf
print(f"文件类型: {extension}")
# 场景2:提取用户邮箱域名
email = "zhangsan@example.com"
domain = email[email.index("@"):]
print(f"邮箱域名: {domain}") # @example.com
# 场景3:获取日期部分
datetime_str = "2024-01-15 14:30:00"
date_part = datetime_str[:10]
print(f"日期: {date_part}") # 2024-01-15
字符串反转与步长应用
text = "Python" # 字符串反转 print(text[::-1]) # nohtyP # 每隔一个字符取一个 print(text[::2]) # Pto # 反向每隔一个字符 print(text[::-2]) # nhy # 从第1个到第6个,步长为2 print(text[1:6:2]) # yhn
实用数据清理案例
# 场景1:清理空格和特殊字符
data = " Hello, World! "
# 去掉首尾空格
clean = data.strip()
# 提取World
world = clean[-6:-1] # World
print(f"清理后的数据: {world}")
# 场景2:提取电话号码区号
phone = "010-88888888"
area_code = phone[:3]
print(f"区号: {area_code}") # 010
# 场景3:提取完整域名中的主域名
url = "https://www.example.com/blog"
main_domain = url.split("//")[-1].split("/")[0] # www.example.com
print(f"主域名: {main_domain}")
复杂字符串处理
# 场景1:处理身份证号
id_card = "110101199001011234"
birthday = f"{id_card[6:10]}-{id_card[10:12]}-{id_card[12:14]}"
print(f"出生日期: {birthday}") # 1990-01-01
# 场景2:隐藏敏感信息
card_number = "6222 0219 8834 5678"
masked = card_number[-4:] # 只显示后4位
hidden = "**** **** **** " + masked
print(f"隐藏后: {hidden}") # **** **** **** 5678
# 场景3:标准化手机号
phone = "13812345678"
formatted = f"{phone[:3]}-{phone[3:7]}-{phone[7:]}"
print(f"格式化: {formatted}") # 138-1234-5678
处理
# 注意:中文在Python3中也支持索引
text = "Python编程入门教程"
# 提取特定位置
print(text[:6]) # Python
print(text[6:8]) # 编程
print(text[-2:]) # 教程
# 处理中文文件名
filename = "2024年1月报告_v2.docx"
version = filename[filename.rindex("_"):].split(".")[0] # _v2
print(f"版本号: {version}") # _v2
| 操作 | 语法 | 示例 | 结果 |
|---|---|---|---|
| 前n个 | [:n] |
"Hello"[:3] |
Hel |
| 后n个 | [-n:] |
"Hello"[-3:] |
llo |
| 中间段 | [start:end] |
"Hello"[1:4] |
ell |
| 反转 | [::-1] |
"Hello"[::-1] |
olleH |
| 跳步取 | [::step] |
"Hello"[::2] |
Hlo |
注意事项:
- 索引从0开始计数
- 切片范围
[start:stop]不包含stop位置 - 负索引从-1开始,表示最后一个元素
- 索引超出范围会返回空字符串,不会报错
这些案例覆盖了大多数日常开发中的字符串截取需求,可以根据实际情况灵活调整。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播