如何更改字符串的顺序? 例如
mys='4002-10-21'
预期结果:
'4002-21-10'
我尝试过的:
我可以枚举拆分后的字符串,然后像 1-3-2 一样重新排列序列
newlist=list()
for i, v in enumerate(mys.split('-')):
newlist.append(v)
最佳答案
与 operator.itemgetter
您可以通过一个电话获得多个项目:
>>> from operator import itemgetter
>>> '-'.join(itemgetter(0,2,1)(mys.split('-')))
'4002-21-10'
与 string format 你可以从参数中选择值:
>>> "{0}-{2}-{1}".format(*mys.split('-'))
'4002-21-10'
与 re.sub
您可以捕获组并重新排序(假设数字):
>>> import re
>>> re.sub(r'(\d+)-(\d+)-(\d+)', r'\1-\3-\2', mys)
'4002-21-10'
如果您在 pandas 中需要这个(如评论中所暗示),您可以在 DataFrame.replace
中使用基于正则表达式的方法和 Series.str.replace
,例如(为就地潜艇添加 inplace=True
):
>>> import pandas as pd
>>> df = pd.DataFrame({'dates': ['4002-10-21']})
>>> df.dates.replace(r'(\d+)-(\d+)-(\d+)', r'\1-\3-\2', regex=True)
0 4002-21-10
Name: dates, dtype: object
关于python - 改变python中字符串的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46756326/