如何根据if语句的结果缩短附加到不同列表的时间

时间:2019-04-02 10:17:46

标签: python list refactoring

您是否知道是否可以简化和美化这个代码(一个额外的变体假设嵌套的if-else条件和更多列表)?

some_list, some_other_list = [], []
if condition:
    some_list.append(value)
else:
    some_other_list.append(value)

3 个答案:

答案 0 :(得分:9)

三元表达式:

(some_list if condition else some_other_list).append(value)

说明:

>>> condition = True
>>> ("A" if condition else "B")
A

>>> condition = False
>>> ("A" if condition else "B")
B

答案 1 :(得分:5)

我认为您可以使用三元。

some_list.append(value) if condition else some_other_list.append(value)

答案 2 :(得分:0)

有一些变化:

(condition and some_other_list or some_list).append(value)

OR

对于低于2.5的Python版本,采用Tuple / lambda方法:

((lambda: some_other_list.append(value), lambda: some_list.append(value))[condition]())

说明

condition = True

some_list = []
some_other_list = []
value = 5

((lambda: some_other_list.append(value), lambda: some_list.append(value))[condition]())

print(some_list)             # 5
print(some_other_list)