python - 改变python中字符串的顺序

标签 python

如何更改字符串的顺序? 例如

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/

相关文章:

python - 使用 python 3 的 Twitter 流 API

python - 用于在hadoop中转换表的Python代码

python - Lion 的新安全模型将如何影响 Python 之类的东西?

python - aiohttp 和 aiohttp_jinja2 响应错误

python - 从一个查询中获取结果并将其放入另一个查询中(搜索 mx 记录)

python ArgumentParser - 错误 : unrecognized arguments: ip_2 '127.0.0.1' `

python - 如何在 Pootle 中按总体完成情况显示排序列表

python - 加法和乘法的联合累加

python - 将\x 转义字符串转换为 UTF-8

python - CategorizedPlaintextCorpusReader : how to specify categories with regex? 'NoneType' 对象没有属性 'group' 错误