交换首尾姓名并去除逗号

-2 投票
2 回答
1105 浏览
提问于 2025-04-17 23:23

使用Python 3.3:

我需要一些帮助,来写一个函数的内容,这个函数可以交换姓和名的位置。

简单来说,我需要写一段代码,把字符串中的名字部分换到姓的地方。

最开始的顺序是名字在前,姓在后(用逗号分隔)。举个例子:'Albus Percival Wulfric Brian, Dumbledore'

我想要的结果是:'Dumbledore Albus Percival Wulfric Brian'

我尝试的方法是: name = 'Albus Percival Wulfric Brian, Dumbledore' name = name[name.find(',')+2:]+", "+name[:name.find(',')]

但是我得到的结果是:'Dumbledore, Albus Percival Wulfric Brian'(这不是我想要的)

中间不应该有逗号。

我刚开始学Python,所以请不要用太复杂的方法来解决这个问题。

非常感谢任何帮助!

2 个回答

0

你自己加了个逗号:

name = name[name.find(',')+2:] + ", " + name[:name.find(',')]

改成这样:

name = name[name.find(',')+2:] + name[:name.find(',')]
5
  1. 你可以用逗号把一个字符串分开,变成一个字符串列表,方法是用 astring.split(',') 这样的写法。
  2. 你可以把一个字符串列表合并成一个字符串,用空格分开,方法是 ' '.join(alist)
  3. 你可以用列表切片的方法来反转一个列表,写法是 alist[::-1]
  4. 你可以用 astring.strip() 来去掉字符串两边的空白。

因此:

' '.join(aname.split(',')[::-1]).strip()

撰写回答