Python如何查找列表中位于指定输入单词之后的相邻单词
Python 实现查找列表中指定字符串后紧邻元素的方案
基础实现(仅返回第一个匹配结果)
适用场景:列表中仅存在一个目标字符串,或只需获取第一个匹配的目标后的紧邻元素
实现思路:调用列表内置index()方法获取目标字符串的索引,判断索引合法性后返回索引+1位置的元素,同时处理目标不存在、目标在列表末尾的边界情况。
示例代码:
def get_next_word(word_list: list[str], target_word: str) -> str | None: try: target_idx = word_list.index(target_word) # 确保目标不是列表最后一个元素 if target_idx < len(word_list) - 1: return word_list[target_idx + 1] return None # 捕获目标不存在的异常 except ValueError: return None
使用示例:
demo_list = ["I", "Can", "play", "football"] target = "Can" print(get_next_word(demo_list, target)) # 输出结果:play
进阶实现(返回所有匹配结果)
适用场景:列表中存在多个相同的目标字符串,需要获取所有匹配位置后紧邻的元素
实现思路:遍历列表所有元素(仅遍历到倒数第二个元素即可),每匹配到目标字符串就将下一个元素存入结果列表。
示例代码:
def get_all_next_words(word_list: list[str], target_word: str) -> list[str] | None: res = [] # 仅遍历到倒数第二个元素,避免索引越界 for idx in range(len(word_list) - 1): if word_list[idx] == target_word: res.append(word_list[idx + 1]) return res if res else None
使用示例:
demo_list = ["Can", "you", "lift", "this?", "Can", "he", "lift", "it?"] target = "Can" print(get_all_next_words(demo_list, target)) # 输出结果:['you', 'he']
你可以根据实际业务需求调整返回值规则,比如目标不存在或无后续元素时返回自定义提示字符串,而非默认返回None。
内容的提问来源于stack exchange,提问作者Pelles
相关产品推荐
相关产品推荐

