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'