用两个列表理解Python列表:评估列表

2024-04-24 19:55:10 发布

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

我有两张单子:

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'],一个错误的结果。你知道吗


Tags: to方法in列表forinputifuse
2条回答

除了Kasramvd建议的or(这应该是实现这一点的方法)之外,您还可以使用ternary operator。你知道吗

list_to_use = input_list if input_list else existing_list

你不需要一份清单。这正是or操作所做的:

>>> input_list or existing_list 
['a', 'b']
>>> input_list = []
>>> 
>>> input_list or existing_list 
['q', 'w', 'r']

相关问题 更多 >