Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 交换名字和姓氏位置_Python_Python 3.x - Fatal编程技术网

Python 交换名字和姓氏位置

Python 交换名字和姓氏位置,python,python-3.x,Python,Python 3.x,我需要一些帮助来编写这个函数的主体,这个函数交换姓和名的位置 本质上,我必须编写一个主体,将名字从字符串交换到姓氏的位置 最初的顺序是名字后跟姓氏(用逗号分隔)。 示例:'Albus Percival Wulfric Brian,邓布利多' 我想要的结果是:'Dumbledore,Albus Percival Wulfric Brian' 但我尝试了以下方法,仍然没有得到正确的答案: temp = name_list[len(name_list)-1] name_list[len(name_li

我需要一些帮助来编写这个函数的主体,这个函数交换姓和名的位置

本质上,我必须编写一个主体,将名字从字符串交换到姓氏的位置

最初的顺序是名字后跟姓氏(用逗号分隔)。 示例:
'Albus Percival Wulfric Brian,邓布利多'

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

但我尝试了以下方法,仍然没有得到正确的答案:

temp = name_list[len(name_list)-1]
name_list[len(name_list)-1] = name_list[0] 
name_list[0] = temp

结果是一个列表,这不是我想要的。我是Python的新用户,因此请不要使用太复杂的方法来解决此问题。

您可以通过将字符串按逗号拆分,从而生成一个列表,然后反转该列表,然后再次按逗号连接列表以获取一个字符串:

>>> name = 'Albus Percival Wulfric Brian, Dumbledore'
>>> ', '.join(reversed(name.split(', ')))
'Dumbledore, Albus Percival Wulfric Brian'
如果您不能使用(无论出于何种原因),那么您可以通过先单独存储列表元素来手动进行反转

>>> name.split(', ')
['Albus Percival Wulfric Brian', 'Dumbledore']
>>> first, last = name.split(', ')
>>> first
'Albus Percival Wulfric Brian'
>>> last
'Dumbledore'
>>> [last, first]
['Dumbledore', 'Albus Percival Wulfric Brian']
>>> ', '.join([last, first])
'Dumbledore, Albus Percival Wulfric Brian'
>>> last + ', ' + first
'Dumbledore, Albus Percival Wulfric Brian'

由于字符串包含多个逗号在理论上是可能的,您应该考虑将<代码> 1 <代码>作为第二个参数,以确保只执行一个单独的拆分,生成两个列表项:

>>> 'some, name, with, way, too, many, commas'.split(', ', 1)
['some', 'name, with, way, too, many, commas']
除了使用
str.split
,您还可以在字符串中找到逗号并自己拆分字符串。您可以使用获取逗号的索引,然后使用拆分字符串:

>>> name.index(',')
28
>>> name[:28] # string up to index 28
'Albus Percival Wulfric Brian'
>>> name[30:] # string starting at index 30 (we have to consider the space too)
'Dumbledore'
>>> index = name.index(',')
>>> name[index + 2:] + ', ' + name[:index]
'Dumbledore, Albus Percival Wulfric Brian'

您可以通过使用逗号拆分字符串,从而生成一个列表,然后反转该列表,然后再次使用逗号连接列表以返回字符串:

>>> name = 'Albus Percival Wulfric Brian, Dumbledore'
>>> ', '.join(reversed(name.split(', ')))
'Dumbledore, Albus Percival Wulfric Brian'
如果您不能使用(无论出于何种原因),那么您可以通过先单独存储列表元素来手动进行反转

>>> name.split(', ')
['Albus Percival Wulfric Brian', 'Dumbledore']
>>> first, last = name.split(', ')
>>> first
'Albus Percival Wulfric Brian'
>>> last
'Dumbledore'
>>> [last, first]
['Dumbledore', 'Albus Percival Wulfric Brian']
>>> ', '.join([last, first])
'Dumbledore, Albus Percival Wulfric Brian'
>>> last + ', ' + first
'Dumbledore, Albus Percival Wulfric Brian'

由于字符串包含多个逗号在理论上是可能的,您应该考虑将<代码> 1 <代码>作为第二个参数,以确保只执行一个单独的拆分,生成两个列表项:

>>> 'some, name, with, way, too, many, commas'.split(', ', 1)
['some', 'name, with, way, too, many, commas']
除了使用
str.split
,您还可以在字符串中找到逗号并自己拆分字符串。您可以使用获取逗号的索引,然后使用拆分字符串:

>>> name.index(',')
28
>>> name[:28] # string up to index 28
'Albus Percival Wulfric Brian'
>>> name[30:] # string starting at index 30 (we have to consider the space too)
'Dumbledore'
>>> index = name.index(',')
>>> name[index + 2:] + ', ' + name[:index]
'Dumbledore, Albus Percival Wulfric Brian'

你不需要很多内置函数

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

你不需要很多内置函数

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

初始值是一个列表,还是一个带逗号的字符串?您的文本似乎建议使用后者,但您的代码使用前者。返回name[name.find(',')+2:][+”,“+name[:name.find(','))]这是一个带逗号的字符串。我不想要一张清单作为答案,我似乎一直在得到答案。谢谢初始值是一个列表,还是一个带逗号的字符串?您的文本似乎建议使用后者,但您的代码使用前者。返回name[name.find(',')+2:][+”,“+name[:name.find(','))]这是一个带逗号的字符串。我不想要一张清单作为答案,我似乎一直在得到答案。谢谢如果我不允许使用反向内置函数,但允许使用联接和拆分方法,该怎么办?你认为你能在这件事上帮我吗?(如使用类似方法,但不使用反向功能)感谢您的帮助@用户3448498扩展了我的答案:)感谢您的帮助!如果名字是‘超级胡珀,胖子’?我如何将其转换为“胖,超级胡珀”?@user3448498如果您在上述代码中执行
name='Super huper,Fat'
(而不是将其设置为邓布利多的名称),那么您将看到它的工作原理与此相同,并将产生正确的结果。我犯了一个错误。我想要的结果之间不能有逗号。我现在很困惑,因为我尝试使用split()方法,但没有得到正确的答案……如果不允许我使用反向内置函数,但允许我使用join和split方法怎么办?你认为你能在这件事上帮我吗?(如使用类似方法,但不使用反向功能)感谢您的帮助@用户3448498扩展了我的答案:)感谢您的帮助!如果名字是‘超级胡珀,胖子’?我如何将其转换为“胖,超级胡珀”?@user3448498如果您在上述代码中执行
name='Super huper,Fat'
(而不是将其设置为邓布利多的名称),那么您将看到它的工作原理与此相同,并将产生正确的结果。我犯了一个错误。我想要的结果之间不能有逗号。我现在很困惑,因为我尝试使用split()方法,但没有得到正确的答案。。。