如何用Python 3将用户输入的姓名列表格式化为“首字母.姓氏”?
将姓名列表转换为「首字母.姓氏」格式的实现方案
完整可运行代码(Python)
# 输入的姓名列表字符串 name_input = "Tony Stark, Steve Rodgers, Wade Wilson" # 把输入字符串拆成单个姓名的列表 individual_names = name_input.split(", ") # 逐个处理并输出 for full_name in individual_names: # 拆分名字和姓氏(默认按空格分隔) first_name, last_name = full_name.split() # 拼接成目标格式 result = f"{first_name[0]}. {last_name}" print(result)
运行这段代码后,输出结果和示例一致:
T. Stark S. Rodgers W. Wilson
代码原理拆解(一步步讲给新手)
- 拆分输入字符串:
split(", ")会把输入里用「逗号+空格」分隔的姓名拆成一个列表,比如示例输入会变成["Tony Stark", "Steve Rodgers", "Wade Wilson"],这样就能逐个处理每个姓名了。 - 遍历每个姓名:用
for循环逐个取出列表里的完整姓名,比如第一次循环拿到"Tony Stark",第二次拿到"Steve Rodgers"。 - 拆分名和姓:
full_name.split()默认按空格拆分字符串,把"Tony Stark"拆成("Tony", "Stark"),分别赋值给first_name和last_name两个变量。 - 生成目标格式:用f-string(Python 3.6及以上支持的语法)提取名字的第一个字符
first_name[0],然后拼接上.和姓氏,就得到了T. Stark这种格式。 - 输出结果:用
print()把每个处理好的姓名逐行打印出来。
进阶小补充(应对特殊情况)
如果遇到带中间名的姓名(比如Peter Benjamin Parker),想保留姓氏的话,可以调整拆分逻辑,取最后一部分作为姓氏:
full_name = "Peter Benjamin Parker" name_parts = full_name.split() # 取第一个名字的首字母,最后一个部分作为姓氏 result = f"{name_parts[0][0]}. {name_parts[-1]}" print(result) # 输出 P. Parker
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

