如何用Python查找单词中字母在自定义列表中的对应索引?
获取单词字母在自定义列表的对应序号
需求是输入一个单词,返回单词中每个字母在自定义字母列表里的对应序号。目前已编写了部分代码,但不清楚后续实现步骤:
已完成的代码片段
- 定义字母列表与获取输入:
# 注意:不要用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: ')
- 拆分单词为单个字母的列表:
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
相关产品推荐
相关产品推荐

