[英]Python list comprehension with two lists: evaluate lists
我有两个清单:
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
操作的功能:
>>> input_list or existing_list
['a', 'b']
>>> input_list = []
>>>
>>> input_list or existing_list
['q', 'w', 'r']
除此之外or
,通过Kasramvd建议(这应该是做到这一点的方式),你也可以使用三元运算符 。
list_to_use = input_list if input_list else existing_list
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.