重构Python代码

重构Python代码,python,python-3.x,refactoring,Python,Python 3.x,Refactoring,有没有人能给出一些建议,把下面的代码重构成1-2行,这样它就简洁易读了 def func(a, b): c = [] if a: c.append(a) if b: c.append(b) return c 我尝试了以下几点: def func(a, b): return [a*(a is not None), b*(b is not None)] 如果a或b是一本词典等,它就不起作用了。为什么?简洁并不意味着清晰。你被

有没有人能给出一些建议,把下面的代码重构成1-2行,这样它就简洁易读了

def func(a, b):
    c = []
    if a:
        c.append(a)
    if b:
        c.append(b)
    return c
我尝试了以下几点:

def func(a, b):
    return [a*(a is not None), b*(b is not None)]

如果
a
b
是一本词典等,它就不起作用了。

为什么?简洁并不意味着清晰。你被否决是因为你没有表现出你为此付出的努力。@RushyPanchal谢谢,我同意。我只是好奇,如果我在这里做的很详细,有人有更简洁易读的解决方案
def func(a, b):
    return [x for x in [a, b] if x]