Python 求值变量赋值

Python 求值变量赋值,python,python-3.5,Python,Python 3.5,我知道Python的三元运算符: result = a if b else c my_tasks = tasksLeft() or 'no tasks left' 但是如果a和b是同一个东西呢?让我举例说明: tasks = ["foo", "bar"] def tasksLeft(): return tasks tasks.remove('foo') my_tasks = tasksLeft() if tasksLeft() else 'no tasks left' 在第一次尝

我知道Python的三元运算符:

result = a if b else c
my_tasks = tasksLeft() or 'no tasks left'
但是如果a和b是同一个东西呢?让我举例说明:

tasks = ["foo", "bar"]
def tasksLeft():
    return tasks

tasks.remove('foo')
my_tasks = tasksLeft() if tasksLeft() else 'no tasks left'
在第一次尝试中,tasksLeft()将计算为True,因此三元运算符将计算为
[“bar”,]

tasks.remove('bar')
my_tasks = tasksLeft() if tasksLeft() else 'no tasks left'
在第二次尝试中,tasksLeft()将计算为False(
[]
),因此它将计算为默认字符串

我假设的代码是:

if not my_tasks = tasksLeft():
    my_tasks = 'no tasks left'
关键是要计算刚刚分配的值,如果为False,则分配不同的值


显然,这只是我刚刚提出的一个示例,我知道它在语法上不正确,但是否有一种重复性较低的编写方法?

在Python中,逻辑运算符返回其一个操作数(第一个可用于确定整个表达式的结果的操作数),因此,您可以使用
运算符:

result = a if b else c
my_tasks = tasksLeft() or 'no tasks left'

my_tasks=tasksLeft()或“没有剩余任务”
ahh,你说得对,我没想到@vaultah。非常感谢。您可以将其作为答案发布。请检查