具有两个列表的Python列表理解:评估列表
我有两份清单:具有两个列表的Python列表理解:评估列表,python,list,if-statement,list-comprehension,Python,List,If Statement,List Comprehension,我有两份清单: input_list = ['a','b'] existing_list = ['q','w','r'] 我想创建一个新列表,它将等于input\u list,如果它不是空的,否则它应该等于existing\u list 最简单的方法是使用普通的if-else: if input_list: list_to_use = input_list else: list_to_use = existing_list 是否可以通过列表理解或任何其他更简洁的方式来实现这一点 li
input_list = ['a','b']
existing_list = ['q','w','r']
我想创建一个新列表,它将等于input\u list
,如果它不是空的,否则它应该等于existing\u 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]
我能得到的最接近的结果是,这个结果产生了一个错误的结果 您不需要列表理解。这正是
或操作所做的:
>>> input_list or existing_list
['a', 'b']
>>> input_list = []
>>>
>>> input_list or existing_list
['q', 'w', 'r']
除了Kasramvd建议的或
(应该是这样做的方法)之外,您还可以使用
“保持简单和愚蠢”。:)谢谢你的接受,但我写它只是作为一个选择。向上投票的答案(使用或
)是您应该肯定使用的答案。@Lafexlos,我会的。对读者来说,这似乎更直观。
list_to_use = input_list if input_list else existing_list