You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python split_title_and_name方法参数类型与代码逻辑疑问

问题核心逻辑解答

1. str.split()的默认行为

Python中字符串的split()方法如果不传入任何分隔符参数,默认会按照**任意连续空白字符(空格、制表符、换行符等)**对字符串做切割,最终返回一个由切割后的子字符串组成的列表,同时自动忽略字符串首尾的空白。
举个例子,对列表里的第一个元素执行split操作:

person = "Dr. Christopher Brooks"
print(person.split())
# 输出结果:['Dr.', 'Christopher', 'Brooks']

2. 索引作用的对象差异

你混淆的是「直接对字符串取索引」和「对split返回的列表取索引」两种情况:

  • 如果你直接写person[0],作用对象是字符串,取的是字符串的第一个字符,结果是D
  • 代码里写的是person.split()[0],是先调用split得到列表,再对这个列表取索引,所以取的是列表的第一个元素,结果是Dr.;同理[-1]取的是列表的最后一个元素,也就是姓氏Brooks

实际运行效果验证

如果遍历people列表调用该函数,完整测试代码和输出如下:

people = ['Dr. Christopher Brooks', 'Dr. Kevyn Collins-Thompson',
          'Dr. VG Vinod Vydiswaran', 'Dr. Daniel Romero']

def split_title_and_name(person):
    return person.split()[0] + ' ' + person.split()[-1]

for p in people:
    print(split_title_and_name(p))

输出结果:

Dr. Brooks
Dr. Collins-Thompson
Dr. Vydiswaran
Dr. Romero

完全符合「删除Dr.和姓氏之间所有中间内容」的预期需求。


内容的提问来源于stack exchange,提问作者Kam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:06:04