【发布时间】:2016-03-24 18:07:45
【问题描述】:
我有两个列表:
input_list = ['a','b']
existing_list = ['q','w','r']
我想创建一个等于input_list 的新列表,如果它不为空,则它应该等于existing_list。
最简单的方法是使用普通的if-else:
if input_list:
list_to_use = input_list
else:
list_to_use = existing_list
是否可以通过列表理解或任何其他更简洁的方式来做到这一点?
list_to_use = [x if input_list else y for y in existing_list for x in input_list]
我能得到的最接近的是这个产生['a', 'b', 'a', 'b', 'a', 'b'] 的错误结果。
【问题讨论】:
-
感谢您的接受,但我写它只是为了替代。赞成的答案(使用
or)是您肯定应该使用的答案。 -
@Lafexlos,我会的。对于读者恕我直言,这似乎更直观。
标签: python list if-statement list-comprehension