Python如何修改代码实现重排单词字母时保留首尾字符不变
代码修改方案
你原有的逻辑是将整个字符串反转,会同时改变首尾字符,不符合需求。我们可以将字符串拆为首字符、中间3位字符、尾字符三部分,仅对中间部分做重排后再拼接即可。
匹配给定断言的实现
你给出的用例in_lat("first") == "fsrit"只需将中间3位做反转处理即可满足:
def in_lat(word): # 可按需添加长度校验逻辑,比如判断是否为5位单词 return word[0] + word[1:4][::-1] + word[4] assert (in_lat("first") == "fsrit")
验证逻辑:单词first拆分后首字符为f、尾字符为t,中间3位是irs,反转后得到sri,拼接后正好是fsrit,符合断言要求。
中间字符随机重排的实现
如果你的需求是中间3位随机打乱而非固定反转,可以借助random模块实现:
import random def in_lat(word): if len(word) != 5: return word middle_chars = list(word[1:4]) random.shuffle(middle_chars) return word[0] + ''.join(middle_chars) + word[-1]
内容的提问来源于stack exchange,提问作者user17139057
相关产品推荐
相关产品推荐

