如何反转字符串的“组”(不是列表)? 例如,鉴于“组”大小等于 3,我想将“123456789”转换为“321654987”。
以下是我的代码,但结果打印出空字符串:
string = "12345678901234567890"
new_string = ""
for i in range(0, len(string), 5):
new_string = new_string + string[i:i+5:-1]
print (new_string)
感谢您的任何意见和建议。
最佳答案
当使用负步长时,也要交换起始值和结束值:
new_string += string[i + 4:i - 1 if i else None:-1]
请注意,结束值被排除在外,None
应该用于包含 first 字符(-1
将从末尾开始切分再次这样 string[4:-1:-1]
将是空的)。
演示:
>>> string = "12345678901234567890"
>>> new_string = ""
>>> for i in range(0, len(string), 5):
... new_string = new_string + string[i + 4:i - 1 if i else None:-1]
...
>>> new_string
'54321098765432109876'
但是,先切片,然后反转可能更容易,这样可以省去此类切片的麻烦:
new_string += string[i:i + 4][::-1]
关于python - 在 Python 中反转字符串的 "group",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17979120/