这段代码是做什么的,python

Ael*_*eon 6 python if-statement

我是自学python,我正在做一个练习,解决方案发布在这个帖子中.任何人都可以将这段代码的含义翻译成英文吗?当我学习if语句时,我从未遇到过这种语法.

 consonants = 'bcdfghjklmnpqrstvwxz'
 return ''.join(l + 'o' + l if l in consonants else l for l in s)
Run Code Online (Sandbox Code Playgroud)

Zac*_*tes 11

这是一段较长的代码,作为生成器编写.这是它的样子,更多的是.

consonants = 'bcdfghjklmnpqrstvwxz'

ls = []
for l in s:
    if l in consonants:
        ls.append(l + 'o' + l)
    else:
        ls.append(l)

return ''.join(ls)
Run Code Online (Sandbox Code Playgroud)

它循环s并检查是否l在字符串中consonants.如果是,它会推l + 'o' + l送到列表,如果没有,它只是推动l.

然后将结果连接到一个字符串中,使用''.join并返回.

更准确(作为发电机):

consonants = 'bcdfghjklmnpqrstvwxz'

def gencons(s):
    for l in s:
        if l in consonants:
            yield l + 'o' + l
        else:
            yield l

return ''.join(gencons(s))
Run Code Online (Sandbox Code Playgroud)

gencons只是一个任意名称我给发电机的功能.

  • 一个重要的区别是它实际上并没有创建或使用列表.它只是迭代s并产生这些新值. (3认同)