我有一个字符串,其实有几个。字符串很简单:
string.a.is.this
或
string.a.im
以这种方式。
我想做的就是让那些叮咬成为:
this.is.a.string
和
im.a.string
我尝试过的事情:
new_string = string.split('.')
new_string = (new_string[3] + '.' + new_string[2] + '.' + new_string[1] + '.' + new_string[0])
适用于制作:
string.a.is.this
到
this.is.a.string
但是给了我一个超出范围的错误'如果我尝试一下:
string.a.im
如果我这样做:
new_string = (new_string[2] + '.' + new_string[1] + '.' + new_string[0])
可以正常使用:
string.a.im
到
im.a.string
但显然不起作用:
string.a.is.this
因为没有为4个指数设置。我试图弄清楚如何使额外的索引可选,或任何其他工作,或更好的方法。感谢。
答案 0 :(得分:7)
您可以使用str.join
,str.split
和[::-1]
:
>>> mystr = 'string.a.is.this'
>>> '.'.join(mystr.split('.')[::-1])
'this.is.a.string'
>>> mystr = 'string.a.im'
>>> '.'.join(mystr.split('.')[::-1])
'im.a.string'
>>>
为了更好地解释,这是一个带有第一个字符串的逐步演示:
>>> mystr = 'string.a.is.this'
>>>
>>> # Split the string on .
>>> mystr.split('.')
['string', 'a', 'is', 'this']
>>>
>>> # Reverse the list returned above
>>> mystr.split('.')[::-1]
['this', 'is', 'a', 'string']
>>>
>>> # Join the strings in the reversed list, separating them by .
>>> '.'.join(mystr.split('.')[::-1])
'this.is.a.string'
>>>
答案 1 :(得分:1)
你可以通过python的re
模块
import re
mystr = 'string.a.is.this'
regex = re.findall(r'([^.]+)', mystr)
'.'.join(regex[::-1])
'this.is.a.string'