如何在Python中将这个嵌套条件减少到一行?

2024-04-26 07:50:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个小练习程序来配对左括号和右括号。如何将嵌套的for/if减少到一行?我试过pure += [char for char in expression if char in brackets else ''],但没用。这是我想减少的完整代码。你知道吗

 def pair(expression):
        left=("(","[","{")
        right=(")","]","}")
        brackets=left+right
        print(brackets)
        pure=''

        #the part I want to reduce
        for char in expression:
            if char in brackets:
                pure+=char

Tags: 代码in程序rightforifpuredef
1条回答
网友
1楼 · 发布于 2024-04-26 07:50:46

这应该做你正在寻找的

''.join([_ if _ in brackets else '' for _ in expression])

尽管正如其他人在评论中指出的那样,这根本没有任何意义。你知道吗

全功能

def pair(expression):
    left = ("(", "[", "{")
    right = (")", "]", "}")
    brackets = left + right
    print(brackets)
    pure = ''.join([_ if _ in brackets else '' for _ in expression])

相关问题 更多 >