如何移除列表中特定索引位置含指定字符的字符串元素
解决方案
你原来的代码是检查整个字符串是否包含'c',所以会把所有带'c'的单词都过滤掉。要实现仅移除指定索引位置为'c'的单词,直接针对目标索引做判断即可,不用复杂的any和map逻辑。
修改后的代码
假设你要检查的索引是3(Python字符串索引从0开始计数),代码如下:
target_index = 3 wlist = ['snake', 'cat', 'shock'] wlist = [word for word in wlist if len(word) <= target_index or word[target_index] != 'c']
逻辑说明
len(word) <= target_index:避免长度不足的单词触发索引越界错误(比如例子里的'cat'长度为3,最大索引是2,访问索引3会报错)。word[target_index] != 'c':核心判断,只保留指定索引位置不是'c'的单词。
运行结果
执行后wlist会变为['snake', 'cat'],刚好移除了索引3为'c'的'shock',保留了其他单词。
简化写法(可选)
如果你能确保列表中所有单词的长度都大于目标索引,不会出现越界问题,也可以简化成:
target_index = 3 wlist = [word for word in wlist if word[target_index] != 'c']
内容的提问来源于stack exchange,提问作者john
相关产品推荐
相关产品推荐

