You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确调用word类并去除其中的重复单词?

解决重复单词去除问题

问题根源

你之前的错误在于:原来代码里的word是循环迭代中的单个字符串变量,每次循环都会被新的单词覆盖,最终它只存储了最后一个被处理的单词。当你把input_list_of_strings = word后,遍历这个变量其实是在遍历该单词的每个字符,所以才会得到类似['e']的结果。

正确实现方式

要实现需求,你需要先收集所有不在words_list中的单词,再对这个集合去重,最后用空格连接成指定格式的字符串。

完整代码示例

with open("wordslist.txt") as f:
    # 用集合存储单词,查询效率更高
    words_list = {word.strip() for word in f}

# 收集所有不符合条件的单词
mismatched_words = []
with open("negation_handling.csv") as g:
    for tweet in g:
        # 分割每行的单词,同时处理前后空白字符
        for word in tweet.strip().split():
            if word not in words_list:
                mismatched_words.append(word)

# 方式1:去重且保留单词首次出现的顺序
unique_words = list(dict.fromkeys(mismatched_words))

# 方式2:去重但打乱顺序(效率更高,适合不关心顺序的场景)
# unique_words = list(set(mismatched_words))

# 按要求格式输出,用空格连接所有唯一单词
print(' '.join(unique_words))

代码说明

  • 用word.strip()替代removesuffix("\n"),可以同时处理换行符和单词前后的空白字符,逻辑更健壮。
  • 先把所有符合条件的单词收集到mismatched_words列表中,避免直接打印导致数据丢失。
  • dict.fromkeys(mismatched_words)会自动保留键的唯一性,且保持单词首次出现的顺序,转成列表后就是去重后的有序单词列表。
  • 最后用' '.join(unique_words)将列表转为空格分隔的字符串,完全匹配你需要的输出格式。

内容的提问来源于stack exchange,提问作者Zulfi A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:35:20