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

如何将字典键转小写的循环函数改写为字典推导式?

如何用字典推导式实现字典键转小写的函数?

嘿,我明白你想把原来的循环写法改成更简洁的字典推导式的需求——你的原函数逻辑没问题,但字典推导式这里的思路其实不是用末尾的if来过滤,而是要对每个键做条件转换,我来帮你完善:

首先先回顾下你原来的可行代码:

def lower_dict_keys(some_dict):
    """Convert all keys to lowercase"""
    result = {}
    for key, value in some_dict.items():
        if type(key) == str:
            result[key.lower()] = value
        else:
            result[key] = value
    return result

你原来的推导式写法卡在了条件部分,其实这里不需要用推导式末尾的if(那是用来过滤键值对的),而是要在键的位置使用三元表达式来完成条件转换。另外建议把type(key) == str换成isinstance(key, str),这样能兼容字符串子类的情况,更健壮。

完善后的函数代码如下:

def lower_dict_keys2(some_dict):
    """Convert all keys to lowercase using dict comprehension"""
    return {key.lower() if isinstance(key, str) else key: value for key, value in some_dict.items()}

举个测试例子验证下:

test_dict = {"Name": "Alice", "Age": 30, 123: "numeric key"}
print(lower_dict_keys2(test_dict))
# 输出结果:{'name': 'Alice', 'age': 30, 123: 'numeric key'}

这个写法和你原函数的逻辑完全一致,但更简洁优雅,符合Pythonic的风格~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:00:53