Python如何处理灵活关键字输入并返回全大写的键名列表
问题原因分析
- 你尝试的代码报错主要有两个问题:
kwargs.items()遍历得到的每个元素是(键名, 键值)格式的元组,元组没有upper()方法,直接调用会触发AttributeError- 需求只需要返回转换后的键名列表,不需要修改原
kwargs对象,不需要调用update方法
正确实现代码
用列表推导式就能简洁完成转换,代码如下:
def uppercase_keys_from_kwargs(**kwargs) -> list: # 直接遍历所有键,转大写后收集为列表 return [key.upper() for key in kwargs.keys()]
如果不习惯列表推导式,也可以用普通循环实现,逻辑完全一致:
def uppercase_keys_from_kwargs(**kwargs) -> list: list_for_keys_only = [] for key in kwargs.keys(): list_for_keys_only.append(key.upper()) return list_for_keys_only
运行效果验证
执行测试用例输出完全符合预期:
>>> uppercase_keys_from_kwargs(twn='Taiwan') ['TWN'] >>> uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan') ['TWN', 'JPN'] >>> uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan', ltu="Lithuania") ['TWN', 'JPN', 'LTU'] >>> uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan', ltu="Lithuania", svn='Slovenia') ['TWN', 'JPN', 'LTU', 'SVN']
内容的提问来源于stack exchange,提问作者PTP_XX
相关产品推荐
相关产品推荐

