列表理解,其中 if 条件在循环之前是第一个
List comprehension where if condition is first before loop
您如何将以下条件转化为列表理解?
a = list()
if inputs is not None:
for i in inputs:
a.append(my_function(i))
else:
a.append(my_function())
我在想:
a = [my_function(input) for input in inputs else my_function() if inputs is not None]
但出现错误。
注意:这只是一个带有伪名称的伪代码。抱歉造成混淆。
您的 if 需要在列表理解之外:
a = [my_function(i) for i in inputs] if inputs is not None else my_function()
我把input
改成了i
,因为input
是内置函数。
您的函数编写方式,您真正需要的是:
a = my_function(inputs[-1]) if inputs is not None else my_function()
除非my_function
有副作用。那么你可以使用:
a = [my_function(i) for i in inputs][-1] if inputs is not None else my_function()
因为你一直在循环中覆盖 a 所以只保留最后一次调用。
a = [my_function()] if inputs is None else [my_function(i) for i in inputs]
您如何将以下条件转化为列表理解?
a = list()
if inputs is not None:
for i in inputs:
a.append(my_function(i))
else:
a.append(my_function())
我在想:
a = [my_function(input) for input in inputs else my_function() if inputs is not None]
但出现错误。
注意:这只是一个带有伪名称的伪代码。抱歉造成混淆。
您的 if 需要在列表理解之外:
a = [my_function(i) for i in inputs] if inputs is not None else my_function()
我把input
改成了i
,因为input
是内置函数。
您的函数编写方式,您真正需要的是:
a = my_function(inputs[-1]) if inputs is not None else my_function()
除非my_function
有副作用。那么你可以使用:
a = [my_function(i) for i in inputs][-1] if inputs is not None else my_function()
因为你一直在循环中覆盖 a 所以只保留最后一次调用。
a = [my_function()] if inputs is None else [my_function(i) for i in inputs]