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

如何按空格拆分密码字符串并校验拆分结果是否为WordNet词汇

实现方案

现有代码问题排查

你当前的写法存在参数类型错误:str.split(password)返回的是子串组成的列表,而wordnet.synsets()仅接收单个字符串作为入参,直接传入列表会触发运行错误。

完整可运行代码

首先需要确保你已经安装了nltk库,之后参考以下实现:

import nltk
from nltk.corpus import wordnet

# 首次运行需要下载WordNet语料库,运行一次后可注释该行
nltk.download('wordnet')

def validate_password(password: str) -> bool:
    # 按空格拆分密码得到子串列表
    split_words = password.split()
    if not split_words:
        return False
    # 逐个校验每个子串是否为WordNet收录词汇
    for word in split_words:
        # 清洗首尾空格并转小写,避免大小写、多余空格导致校验失败
        cleaned_word = word.strip().lower()
        # 跳过空字符串
        if not cleaned_word:
            continue
        # 校验当前词汇是否被WordNet收录
        if not wordnet.synsets(cleaned_word):
            return False
    return True

# 调用示例
test_pwd = "apple banana orange"
if validate_password(test_pwd):
    print(f"your password is: {test_pwd}")
    nextcheck = True
else:
    nextcheck = False

可调整的规则说明

  • 如果你只需要判断拆分后的子串中存在至少一个WordNet词汇即可通过校验,只需将遍历逻辑改为任意子串校验通过就返回True
  • 如果不需要兼容大小写差异,可以去掉.lower()的转换逻辑
  • 如果需要过滤数字、特殊符号组成的子串,可以在校验前加正则匹配清洗无效字符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:24:03