Lambda 函数使用参数 return 不同的值
Lambda Function to return different value using parameters
我想对 return 值使用 lambda
函数。这可以在一个函数中处理,但是更喜欢在这个练习中使用 lambda。通常,我想通过传递第二个参数让 lambda
return 为日期或 0。
import datetime
none_func=lambda x: 0 if x is None else x
print(none_func(None))
print(none_func(7))
print(none_func(datetime.datetime(2020,1,1)))
### Here, update the lambda function to take an additional parameters, like returns a date if None as well
none_func=lambda x: datetime.datetime(1900,1,1) if x is None else x
print(none_func(None))
print(none_func(7))
更新说明:
我想将合并函数转换为 lambda
。
def coalesce(x,return_schema='int'):
if x is None and return_schema=='int': return 0
elif x is None and return_schema=='date': return datetime.datetime(1900,1,1)
else: return x
print(coalesce(7))
print(coalesce(None))
print(coalesce(None,return_schema='date'))
print(coalesce(datetime.datetime.today(),return_schema='date'))
您是否在寻找以下内容:
func = lambda x, y: 'default' if (x is None or y is None) else x
func(1, 2) # returns 1
func(None, 1) # returns 'default'
func(1, None) # returns 'default'
func(None, None) # returns 'default'
或者如果您只想根据第二个参数做一些事情,只需更改 if 语句来测试它的值。
使用该函数会是更好的选择,但如果您想将其转换为 lambda,您可以尝试这样的操作:
import datetime
f = lambda x,return_schema="int": 0 if x is None and return_schema=='int' else ( datetime.datetime(1900,1,1) if x is None and return_schema=='date' else x)
print(f(7))
print(f(None))
print(f(None, return_schema='date'))
print(f(datetime.datetime.today(), return_schema='date'))
希望对您有所帮助。
我想对 return 值使用 lambda
函数。这可以在一个函数中处理,但是更喜欢在这个练习中使用 lambda。通常,我想通过传递第二个参数让 lambda
return 为日期或 0。
import datetime
none_func=lambda x: 0 if x is None else x
print(none_func(None))
print(none_func(7))
print(none_func(datetime.datetime(2020,1,1)))
### Here, update the lambda function to take an additional parameters, like returns a date if None as well
none_func=lambda x: datetime.datetime(1900,1,1) if x is None else x
print(none_func(None))
print(none_func(7))
更新说明:
我想将合并函数转换为 lambda
。
def coalesce(x,return_schema='int'):
if x is None and return_schema=='int': return 0
elif x is None and return_schema=='date': return datetime.datetime(1900,1,1)
else: return x
print(coalesce(7))
print(coalesce(None))
print(coalesce(None,return_schema='date'))
print(coalesce(datetime.datetime.today(),return_schema='date'))
您是否在寻找以下内容:
func = lambda x, y: 'default' if (x is None or y is None) else x
func(1, 2) # returns 1
func(None, 1) # returns 'default'
func(1, None) # returns 'default'
func(None, None) # returns 'default'
或者如果您只想根据第二个参数做一些事情,只需更改 if 语句来测试它的值。
使用该函数会是更好的选择,但如果您想将其转换为 lambda,您可以尝试这样的操作:
import datetime
f = lambda x,return_schema="int": 0 if x is None and return_schema=='int' else ( datetime.datetime(1900,1,1) if x is None and return_schema=='date' else x)
print(f(7))
print(f(None))
print(f(None, return_schema='date'))
print(f(datetime.datetime.today(), return_schema='date'))
希望对您有所帮助。