You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何根据指定数字序列调整字符串内字符的位置?

Python根据数字序列调整字符串字符位置的实现方法

完全可以实现,核心逻辑是将输入的1-based数字序列转换为Python字符串兼容的0-based索引,按索引依次取原字符串字符拼接即可。

实现原理

你给出的示例中数字序列为1-based索引规则:数字n对应原字符串的第n位字符,Python字符串默认使用0-based索引,只需将每个数字减1即可匹配原生索引规则。
以你给出的示例验证:

原字符串:"ABCDEFG" → 0-based索引对应关系:0:A、1:B、2:C、3:D、4:E、5:F、6:G
数字序列:"1346527" → 转换为0-based索引:[0,2,3,5,4,1,6]
按索引取字符拼接结果:A + C + D + F + E + B + G = "ACDFEBG",和你预期的输出完全一致。

代码实现

版本1:数字序列为字符串类型

def rearrange_by_sequence(original_str: str, num_seq: str) -> str:
    return "".join([original_str[int(num) - 1] for num in num_seq])

# 测试示例
s = "ABCDEFG"
seq = "1346527"
print(rearrange_by_sequence(s, seq))
# 输出结果:ACDFEBG

版本2:数字序列为整数列表

如果输入的数字序列是[1,3,4,6,5,2,7]格式的整数列表,直接调整转换逻辑即可:

def rearrange_by_sequence(original_str: str, num_seq: list[int]) -> str:
    return "".join([original_str[num - 1] for num in num_seq])

注意事项

  • 需保证数字序列长度和原字符串长度一致,避免出现索引越界、字符遗漏问题
  • 数字序列内的所有数值需在1 ~ 原字符串长度范围内,且无重复值,否则会触发索引错误或出现重复字符
  • 如果你使用的数字序列本身就是0-based规则,直接去掉代码中-1的逻辑即可使用

内容的提问来源于stack exchange,提问作者Dino Poljic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:54:03