如何在 f 字符串中使用 lambda 函数并有条件地 return 值?
How to use lambda functions in f strings and return the value conditionally?
我用谷歌搜索了很多,但似乎找不到关于这个问题的任何信息,或者可能因为我是菜鸟,所以我没有搜索正确的关键字。我确实找到了一个问题,但它在 lambda 函数中使用了一个 f 字符串,这与我需要的完全相反。
所以我有一个名为 tc
的计数器标志,它检查两个数字的总和是否超过某个预定义的常量。计数器标志工作正常并正确获取 1
或 0
。我不能做的是程序的下一部分。
我想直接检查条件并在 f 字符串中 return 它。
到目前为止,我已经能够做到这一点。
timE = f"({(lambda x: x = 'next' if tc==1 else x = 'same')} day)"
print(timE)
我得到的是
File "<fstring>", line 1
((lambda x: x = 'next' if tc==1 else x = 'same'))
^
SyntaxError: invalid syntax
我需要的是如果 tc
是 1 那么 lambda 函数应该 return next
否则 same
。
然后我需要的最终结果是 (next day)
或 (same day)
.
我确实尝试了一些其他的东西,但没有给我错误,而是给了我一些别的东西。
timE = f"({(lambda : 'next' if tc==1 else 'same')} day)"
我得到的输出是
03:08 AM, (<function add_time.<locals>.<lambda> at 0x7fe5b4660dc0> day)
我知道我正在尝试做的事情在某种程度上可能会以某种骇人听闻的方式实现,但我似乎无法找到它。
感谢任何帮助
为什么不只是这个?您在这里不需要 lambda。
timE = f"({'next' if tc==1 else 'same'} day)"
我用谷歌搜索了很多,但似乎找不到关于这个问题的任何信息,或者可能因为我是菜鸟,所以我没有搜索正确的关键字。我确实找到了一个问题,但它在 lambda 函数中使用了一个 f 字符串,这与我需要的完全相反。
所以我有一个名为 tc
的计数器标志,它检查两个数字的总和是否超过某个预定义的常量。计数器标志工作正常并正确获取 1
或 0
。我不能做的是程序的下一部分。
我想直接检查条件并在 f 字符串中 return 它。
到目前为止,我已经能够做到这一点。
timE = f"({(lambda x: x = 'next' if tc==1 else x = 'same')} day)"
print(timE)
我得到的是
File "<fstring>", line 1
((lambda x: x = 'next' if tc==1 else x = 'same'))
^
SyntaxError: invalid syntax
我需要的是如果 tc
是 1 那么 lambda 函数应该 return next
否则 same
。
然后我需要的最终结果是 (next day)
或 (same day)
.
我确实尝试了一些其他的东西,但没有给我错误,而是给了我一些别的东西。
timE = f"({(lambda : 'next' if tc==1 else 'same')} day)"
我得到的输出是
03:08 AM, (<function add_time.<locals>.<lambda> at 0x7fe5b4660dc0> day)
我知道我正在尝试做的事情在某种程度上可能会以某种骇人听闻的方式实现,但我似乎无法找到它。
感谢任何帮助
为什么不只是这个?您在这里不需要 lambda。
timE = f"({'next' if tc==1 else 'same'} day)"