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

如何将Python中嵌套if-else的字符分类代码转换为列表推导式

转换为列表推导式的实现

以下是完全保留原代码逻辑的列表推导式版本:

data = "abc@#123"
t = tuple(data)
flag = 0

# 用列表推导式完成分类
alpha = [i for i in t if type(i) == type(data) and i.isalpha()]
digit = [int(i) for i in t if i.isnumeric() and type(int(i)) == type(flag)]
spl_chr = [i for i in t if not (i.isnumeric() or (type(i) == type(data) and i.isalpha()))]

dic = {
    "alphabets": alpha,
    "digits": digit,
    "symbols": spl_chr
}

print(t)
print(dic)

逻辑对应说明

  • 字母列表alpha:完全对应原代码的elif分支,筛选类型为字符串且是字母的字符
  • 数字列表digit:对应原代码的if分支,先判断字符是数字,再验证转换为int后的类型与flag一致(原代码中的类型判断逻辑完整保留)
  • 符号列表spl_chr:对应原代码的else分支,筛选既不是数字、也不符合字母判断条件的字符

运行结果与原代码完全一致,输出:

('a', 'b', 'c', '@', '#', '1', '2', '3')
{'alphabets': ['a', 'b', 'c'], 'digits': [1, 2, 3], 'symbols': ['@', '#']}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 13:05:55