守着一只汪
就个人而言,我认为使用单词的索引来查找比循环遍历列表更容易。complete_word_list = ['3', 'May', '.', 'Bistritz', '.', 'Left', 'Munich', 'at', '8:35', 'P.', 'M.', ',', 'on', '1st', 'May', ',', 'arriving', 'atVienna', 'early', 'next', 'morning', ';', 'should', 'have', 'arrived', 'at', '6:46', ',', 'but', 'train', 'dracula', 'anhour', 'late']dracula_list = ['dracula','Dracula']nearby_words = []for i in dracula_list: if i in complete_word_list: #if word was found in list found_word = complete_word_list.index(i) #returns index of word to find nearby_words.append(complete_word_list[found_word-1]) #index-1 is the element to the left if found_word+1 < len(complete_word_list): #include a check to keep indices in range of list nearby_words.append(complete_word_list[found_word+1]) #index+1 is element to the rightprint(nearby_words)编辑:按照建议,您可以使用try and exceptcatch 来检查元素是否在列表中 ( ValueError) 或者是否有任何相邻元素 ( IndexError):complete_word_list = ['3', 'May', '.', 'Bistritz', '.', 'Left', 'Munich', 'at', '8:35', 'P.', 'M.', ',', 'on', '1st', 'May', ',', 'arriving', 'atVienna', 'early', 'next', 'morning', ';', 'should', 'have', 'arrived', 'at', '6:46', ',', 'but', 'train', 'dracula', 'anhour', 'late']dracula_list = ['dracula','Dracula']nearby_words = []for i in dracula_list: try: found_word = complete_word_list.index(i) nearby_words.append(complete_word_list[found_word-1]) nearby_words.append(complete_word_list[found_word+1]) except (ValueError, IndexError): print('this is either not in the list of there was not an adjacent element on either side.')print(nearby_words)