Python:单词的倒序

Python:单词的倒序,python,string,list,Python,String,List,在我的程序中,我从另一个文件中提取一个字符串并将其分配给一个变量(见下文) 如何将上面的字符串转换为不同的格式,如下所示?(注意逗号后的空格) 很抱歉,如果这个问题看起来很琐碎,但我对列表没有太多经验,大多数解决方案都包含列表(所以我不完全理解它们) 任何帮助都将不胜感激 这应该适用于您的示例: ', '.join(ex1.split()[::-1]) 考虑到您的名字总是采用“First-Last”格式,这里有一个非常简单的解决方案: name = ex1.split(' ') ex2 = n

在我的程序中,我从另一个文件中提取一个字符串并将其分配给一个变量(见下文)

如何将上面的字符串转换为不同的格式,如下所示?(注意逗号后的空格)

很抱歉,如果这个问题看起来很琐碎,但我对列表没有太多经验,大多数解决方案都包含列表(所以我不完全理解它们)


任何帮助都将不胜感激

这应该适用于您的示例:

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

考虑到您的名字总是采用“First-Last”格式,这里有一个非常简单的解决方案:

name = ex1.split(' ')
ex2 = name[1] + ', ' + name[0]

>>> ex2
'Doe, John'
差不多

ex1 = 'John Doe Smith Brown'
print(', '.join(ex1.split(None, 1)[::-1]))
我们应该做到这一点


输出为“Doe Smith Brown,John”。如果您确实想要“Brown,Smith,Doe,John”,请删除
,1
参数(该参数告诉
.split()
仅允许一次拆分)。

对于两个名称的情况,您可以使用
str.join
str.split

ex1 = 'John Doe'
ex2 = ', '.join(reversed(ex1.split()))  # 'Doe, John'
您还可以通过匿名函数使用f字符串(Python 3.6+):

ex2 = (lambda x: f'{x[1]}, {x[0]}')(ex1.split())  # 'Doe, John'
不清楚您希望看到多个名称的内容,例如,是否提供了中间名称。

这应该可以

 ext = ", ".join( reversed(ex1.split(" ")))

除了发布的许多答案外,我还想重点介绍Python多重赋值模式和新引入的f字符串(3.6+)在您的案例中可以用作:

name, surname = ex1.split(' ')
ex2 = f"{surname}, {name}"
使用正则表达式:

import re
ex2 = re.sub('(\w+)\s(\w+)', r'\2, \1', ex1)

>>> ex2
'Doe, John'

到目前为止,您尝试了什么?那么,仅用两个词来实现这一点的确切问题是什么?或者还能有更多?你对这根绳子有保证吗?也就是说,它总是姓还是名?或者也会有像中间名这样的奇怪现象吗?到目前为止,我在另一个stackoverflow页面上读到一个解决方案,它的大意是:[名字列表中的n使用“.join(n.split(“,”[:-1])@BenJones它总是采用这种格式。没有中间名或任何其他“,”。join(reversed(ex1.split())将执行相同的操作。如果要反转字符串,请执行此操作?@BenJones Oops,忘记了示例中的slice运算符。
name, surname = ex1.split(' ')
ex2 = f"{surname}, {name}"
import re
ex2 = re.sub('(\w+)\s(\w+)', r'\2, \1', ex1)

>>> ex2
'Doe, John'