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

Ale*_*kov 0 python if-statement list-comprehension list

我有两个清单:

input_list = ['a','b']
existing_list = ['q','w','r']
Run Code Online (Sandbox Code Playgroud)

我想创建一个新的列表,input_list如果它不是空的则等于它应该等于existing_list.

最简单的方法是使用plain if-else:

if input_list:
  list_to_use = input_list
else:
  list_to_use = existing_list
Run Code Online (Sandbox Code Playgroud)

是否可以以列表理解或更简洁的任何其他方式执行此操作?

list_to_use = [x if input_list else y for y in existing_list for x in input_list]
Run Code Online (Sandbox Code Playgroud)

我能得到的最接近的是这个产生['a', 'b', 'a', 'b', 'a', 'b']错误的结果.

Kas*_*mvd 5

您不需要列表理解.这正是or操作的作用:

>>> input_list or existing_list 
['a', 'b']
>>> input_list = []
>>> 
>>> input_list or existing_list 
['q', 'w', 'r']
Run Code Online (Sandbox Code Playgroud)

  • "保持简单和愚蠢".. :) (2认同)