python 字符串以交替步幅切片

标签 python string slice

是否有一种优雅的方式来执行不止一步的 python 切片?

例如,给定一个输入字符串,创建包含以下位置的字符的字符串:1,4,6,9,11,14,16,19 等等

输入示例:

s = "abcdefhijklmnopqrstuvwxyz"

输出:

out = "behkmpruwz"

最佳答案

这是一个可能满足您要求的正则表达式解决方案:

s = "abcdefhijklmnopqrstuvwxyz"
output = re.sub(r'.(.)..(.)', '\\1\\2', s)
print(s)
print(output)

打印:

abcdefhijklmnopqrstuvwxyz
behkmpruwz

该模式一次匹配五个字符,捕获捕获组 \1\2 中的第二个和第五个字符。然后,它只是将这五个字符替换为两个捕获的单个字符。

这恰好适合您的输入字符串,因为它的长度恰好是 5 的倍数。请注意,我的模式不会对长度超过 5 倍数的任何字符 1 到 4 进行任何替换。

关于python 字符串以交替步幅切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57651904/

相关文章:

python - Azure KeyVault : how to retrieve clientId, clientSecret 和现有服务主体的tenantId?

python - Python 脚本可以读/写的(CSV)文件大小是否有限制?

c# - 你如何在 C# 中传递字符串?

python - 在其他列表项中查找列表项的列表索引

arrays - Ruby:字符串在数组中显示为字符串

c++ - 如何在 C++ 初始化时重载分配运算符以分配对象

go - 将结构的字段 slice 为可变参数

python - 通过使用另一个数组作为沿轴的切片索引来切片数组

python - 我可以使用数组作为索引对 numpy 数组进行切片吗?

python - 值错误: "metrics can' t handle a mix of binary and continuous targets"with no source