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

Python如何使用推导式生成指定结构嵌套字典并展示多值

实现目标

基于输入的字符串列表,使用推导式生成嵌套字典,规则如下:

  • 以列表中每个字符串作为外层字典的key
  • 每个key对应一个内层字典,固定包含UPPER、lower两个key
  • 遍历字符串的每个字符,跳过空格等非字母字符:大写字母存入UPPER对应的列表,小写字母存入lower对应的列表

测试输入

given_list = ['iCLA', 'YGU', 'icla YGU', 'Hello World', 'Python']

预期输出

{'iCLA': {'UPPER': ['C', 'L', 'A'], 'lower': ['i']},    
'YGU': {'UPPER': ['Y', 'G', 'U'], 'lower': []},    
'icla YGU': {'UPPER': ['Y', 'G', 'U'], 'lower': ['i', 'c', 'l', 'a']},    
'Hello World': {'UPPER': ['H', 'W'], 'lower': ['e', 'l', 'l', 'o', 'o', 'r', 'l', 'd']},    
'Python': {'UPPER': ['P'], 'lower': ['y', 't', 'h', 'o', 'n']}}
正确实现代码

直接嵌套字典+列表推导式即可完成,不需要额外写复杂的条件分支循环:

given_list = ['iCLA', 'YGU', 'icla YGU', 'Hello World', 'Python']

result = {
    # 外层遍历列表每个字符串作为key
    s: {
        # 内层筛选当前字符串里所有大写字母,自动跳过非大写的其他字符
        'UPPER': [char for char in s if char.isupper()],
        # 筛选当前字符串里所有小写字母,自动跳过非小写的其他字符(包含空格、符号)
        'lower': [char for char in s if char.islower()]
    } for s in given_list
}

# 打印验证结果
print(result)

常见出错点

之前实现达不到预期通常是两个原因:

  • 没有过滤非字母字符,导致空格、符号被误加入列表
  • 嵌套结构层级写错,没有把每个字符串对应的两个分类列表放到对应内层字典下

运行上述代码可以直接得到和预期完全一致的输出。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 12:54:15