簡體   English   中英

Python列表理解包含兩個列表:評估列表

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM