python - 在 Python 中反转字符串的 "group"

标签 python string reverse

如何反转字符串的“组”(不是列表)? 例如,鉴于“组”大小等于 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/

相关文章:

python - 如何使用 while + for 循环计算 Big O

python - 以图形方式显示具体范围

python - Python : Why do I get error message when I try to calculate the inverse of my 2x2-matrix (Hessian)?

javascript - 如何使用 JavaScript 将字符串中每个单词的首字母大写?

jQuery 如何反转remove() 事件

Django 跨站反向 URL

Python 按真实性过滤列表

javascript - 子串 vs 切片 vs 其他?

xml - 如何使用xpath从节点获取属性值?

python - 如何在 python 中反转 int?