Max*_*ner 4 python string slice
我需要反转一个交错的字符串,意味着我有2对,应该像这样搞砸了:
>>> interleaved = "123456"
Run Code Online (Sandbox Code Playgroud)
倒车
>>> print interleaved[::-1]
654321
Run Code Online (Sandbox Code Playgroud)
但我真正想要的是
563412
Run Code Online (Sandbox Code Playgroud)
这有一个字符串切片操作?
对于偶数长度的字符串,这应该这样做:
>>> s = "123456"
>>> it = reversed(s)
>>> ''.join(next(it) + x for x in it)
'563412'
Run Code Online (Sandbox Code Playgroud)
对于奇数长度的字符串,您需要分别添加第一个字符:
>>> s = "7123456"
>>> it = reversed(s)
>>> (s[0] if len(s)%2 else '') + ''.join(next(it) + x for x in it)
'7563412'
Run Code Online (Sandbox Code Playgroud)
使用切片和zip:
>>> s = "7123456"
>>> (s[0] if len(s)%2 else '') + ''.join(x+y for x, y in zip(s[-2::-2], s[::-2]))
'7563412'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
755 次 |
| 最近记录: |