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

如何用Python查找单词中字母在自定义列表中的对应索引?

获取单词字母在自定义列表的对应序号

需求是输入一个单词,返回单词中每个字母在自定义字母列表里的对应序号。目前已编写了部分代码,但不清楚后续实现步骤:

已完成的代码片段

  1. 定义字母列表与获取输入:
# 注意:不要用list作为变量名,避免覆盖Python内置类型,这里改为alphabet_list
alphabet_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

word = input('word: ')
  1. 拆分单词为单个字母的列表:
ListWord= []

for i in range(len(word)):
    ListWord.append(word[i])

实现方案

核心是利用列表的index()方法获取元素的位置索引,同时可以优化代码逻辑,提升简洁性和鲁棒性:

完整实现代码

# 自定义字母列表,规避内置类型变量名冲突
alphabet_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

word = input('word: ')
# 优化拆分逻辑:直接将字符串转为字符列表,替代原循环
ListWord = list(word)

# 存储最终序号结果
result = []
for char in ListWord:
    # 统一转为小写,兼容大写字母输入
    lower_char = char.lower()
    if lower_char in alphabet_list:
        # 获取索引,若需要从1开始计数则加1,0开始则去掉+1
        index = alphabet_list.index(lower_char) + 1
        result.append(index)
    else:
        # 处理不在列表中的字符,避免程序报错
        result.append(f"字符'{char}'不在自定义列表中")

# 输出结果
print("每个字母的对应序号:", result)

关键说明

  • 变量名优化:将原list改为alphabet_list,避免覆盖Python内置的list类型。
  • 拆分优化:list(word)可直接将字符串拆分为单个字符的列表,替代冗余的循环写法。
  • 大小写兼容:通过char.lower()统一转换为小写,确保输入大写字母也能匹配列表中的元素。
  • 异常处理:增加字符存在性判断,对不在列表中的字符返回提示信息,避免程序崩溃。
  • 序号灵活调整:默认返回1开始的序号(如a对应1),若需要0开始的序号,删除代码中的+1即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 11:22:27