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

如何利用enumerate()获取的索引对单词切片并定位元音?

解决单词重排问题:找到第一个元音并调整顺序

核心思路

先定位单词里第一个元音的位置,再通过切片把元音之前的部分移到末尾。enumerate的作用就是帮你遍历字符的同时拿到它的索引,找到索引后直接用切片拼接就行,两步分开做很简单。

具体实现代码

# 输入要处理的单词
word = "where"
# 定义元音集合(包含大小写)
vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}

# 初始化第一个元音的索引
first_vowel_idx = None

# 用enumerate遍历,同时拿到索引和字符
for idx, char in enumerate(word):
    if char in vowels:
        first_vowel_idx = idx
        break  # 找到第一个元音就停止遍历,不用继续找后面的

# 拼接结果
if first_vowel_idx is not None:
    result = word[first_vowel_idx:] + word[:first_vowel_idx]
    print(result)  # 输出: erewh
else:
    print("这个单词里没有元音")

步骤拆解

  1. enumerate的用法:遍历word时,enumerate会返回一对值——idx是当前字符的位置(从0开始计数),char是字符本身。比如遍历"where"时,第三次循环拿到idx=2和char='e',这就是第一个元音的位置。
  2. 切片操作说明:
    • word[first_vowel_idx:]:从元音位置开始,取到单词结尾的所有字符("where"里就是"ere")
    • word[:first_vowel_idx]:从单词开头取到元音位置之前的字符("where"里就是"wh")
    • 把这两部分拼起来,就得到了元音在前、前面部分移到末尾的结果。

小优化(可选)

如果要忽略大小写(比如处理"Where"或者"WHEn"),可以把判断条件改成:

if char.lower() in {'a', 'e', 'i', 'o', 'u'}:

这样不管字符是大写还是小写,都能正确识别元音。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 09:51:56