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

Python实现:引导用户输入分类从对应多列表随机抽取单词

多分类随机取词交互实现

核心实现逻辑分3步:

  • 把分散的各分类词表统一存入字典结构,用分类名做键匹配对应词库
  • 改造原有单列表取词函数,支持传入分类参数指定取词范围
  • 增加用户输入校验逻辑,匹配不到分类时给出明确提示,避免程序报错

1. 调整词表存储结构

先修改你words.py里的内容,把不同分类的词表整合为字典,示例结构:

# words.py 文件内容
category_words = {
    "人物": ["医生", "教师", "程序员", "画家", "消防员"],
    "地点": ["公园", "地铁站", "图书馆", "山顶", "海边"],
    "动物": ["熊猫", "老虎", "企鹅", "松鼠", "海豚"],
    "物品": ["键盘", "保温杯", "帆布包", "台灯", "书签"]
}

把你已有的各分类词表替换到对应键值位置即可。

2. 改造取词函数

在原有单列表取词逻辑基础上增加分类参数,直接复用之前写的随机选择、格式转换逻辑:

import random
from words import category_words

def get_word(category):
    # 从指定分类的词表中随机取词
    word = random.choice(category_words[category])
    return word.upper()

3. 实现用户交互逻辑

交互部分先给用户展示支持的分类选项,接收输入后先判断是否在合法分类列表里,合法就调用取词函数返回结果,不合法就提示重新输入:

def main_interaction():
    # 获取所有支持的分类列表
    valid_categories = list(category_words.keys())
    print(f"当前支持的单词分类有:{'、'.join(valid_categories)}")
    
    while True:
        user_input = input("请输入你要抽取单词的分类:").strip()
        if user_input in valid_categories:
            selected_word = get_word(user_input)
            print(f"从{user_input}分类中随机抽到的单词是:{selected_word}")
            break
        else:
            print(f"输入的分类不存在,请重新输入,可选分类为:{'、'.join(valid_categories)}")

if __name__ == "__main__":
    main_interaction()

如果需要支持不区分大小写的分类匹配、模糊匹配,可以在输入校验部分增加对应的字符串处理逻辑,比如把用户输入和分类名都统一转成小写后再比对。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 09:57:27