所以我试图将字符串反转31/12/9999
为9999/12/31
,我一直在尝试date = date[::-1]
,但它会产生9999/21/31
并且不会保留字符串的内容。
我正在寻找类似于 , 的php
东西reverse_array( $array , $preserve );
。
这是使用 Python 的方法
'/'.join(reversed(s.split('/')))
9999/12/31
用 将其拆分成一个列表str.split()
,然后用 打印反转的字符串str.join()
:
>>> s = "31/12/9999"
>>> L = s.split('/') # L now contains ['31', '12', '9999']
>>> print '/'.join(L[::-1]) # Reverse the list, then print all the content in the list joined by a /
9999/12/31
或者,在一行中:
>>> print '/'.join(s.split('/')[::-1])
但是,如果您正在使用日期,则应该使用该datetime
模块,以便以后可以使用日期执行其他操作:
>>> import datetime
>>> s = "31/12/9999"
>>> date = datetime.datetime.strptime(s, '%d/%m/%Y')
>>> print date.strftime('%Y/%m/%d')
9999/12/31
时间比较:
$ python -m timeit 's = "31/12/9999"' "'/'.join(s.split('/')[::-1])"
1000000 loops, best of 3: 0.799 usec per loop
$ python -m timeit 's = "31/12/9999"' "'/'.join(reversed(s.split('/')))"
1000000 loops, best of 3: 1.53 usec per loop