如何按指定索引位置的字符过滤等长单词列表?
原地筛选指定索引字符的单词列表
核心需求
对包含等长单词的列表,原地移除指定索引位置字符不符合要求的元素,可重复执行该操作最多4次。
实现思路
因为要原地修改列表,直接正向遍历删除元素会导致索引错位(跳过后续元素),所以采用倒序遍历的方式,从列表末尾开始检查并移除不符合条件的元素。
Python 代码实现
def filter_words_in_place(word_list, target_index, target_char): # 倒序遍历,避免删除元素时索引错乱 for i in range(len(word_list)-1, -1, -1): # 检查指定索引的字符是否匹配 if word_list[i][target_index] != target_char: del word_list[i] # 示例使用 original_list = ["house", "ghost", "there", "loose"] # 筛选索引2(第3位)为'o'的单词 filter_words_in_place(original_list, 2, 'o') print(original_list) # 输出: ["ghost", "loose"] # 可重复调用最多4次,比如后续再筛选其他索引 # filter_words_in_place(original_list, 0, 'g')
操作说明
- 每次调用
filter_words_in_place函数时,传入待处理的列表、目标索引(从0开始计数)和目标字符即可完成一次筛选 - 倒序遍历保证了每个元素都会被检查到,不会因为前面元素被删除而遗漏后续元素
内容的提问来源于stack exchange,提问作者Voltaic314
相关产品推荐
相关产品推荐

