如何在python中将嵌套的if - else代码转换为列表解析

ilmyapht  于 2022-12-30  发布在  Python
关注(0)|答案(1)|浏览(120)

我已经尝试和谷歌下面提到的代码的解决方案,但不幸的是,我没有得到任何关于这一点。

请不要更改逻辑将其转换为列表解析。我已经尝试过列表解析。我离输出有点远。但是由于语法错误,我失败了。提前感谢。

data = "abc@#123"
t=tuple(data)
flag=0
print(t)
alpha=[]
digit=[]
spl_chr=[]
for i in t:
    if i.isnumeric():
        i=int(i)
        if type(i)==type(flag):
            digit.append(i)
    elif type(i)==type(data) and i.isalpha():
        alpha.append(i)
    else:
        spl_chr.append(i)
dic={}
dic["alphabets"]=alpha
dic["digits"]=digit
dic["symbols"]=spl_chr
print(dic)
1rhkuytd

1rhkuytd1#

import re
import itertools

def char_class(c):
    if re.match(r'[a-z]', c, re.IGNORECASE):
        return c, 'alphabets'
    elif re.match(r'[0-9]', c):
        return c, 'digits'
    else:
        return c, 'symbols'

data = "abc@#123"

dic = {
   k: list(e[0] for e in v) for k, v in itertools.groupby((char_class(c) for c in data), key=lambda e: e[1])
}

print(dic)

相关问题