[英]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.