OrderedDict 中的元组

Tuples within OrderedDict

我有以下 OrderedDict

activities = OrderedDict([('eating',(1,False)),('drinking',(2,True)),('breathing',(3,True)),('talking',(4,False)),('walking',(5,False))])

我希望能够 运行 一个函数来反转特定条目的 True/False 部分。

到目前为止我有以下内容:

def updateactivity(activity):
    activities = OrderedDict([(k, (1,False)) if k == activity else (k, v) for k, v in activities.items()])

最好将值切换为 False。 有没有更优雅的方法来简单地在任一方向上反转 True/False?

将每个项目的值解压缩为两个 variables/names 然后用 not 重构。

d = collections.OrderedDict()
for k, (a,b) in activities.items():
    d[k] = (a, not b)

collections.OrderedDict((k,(a, not b)) for k, (a,b) in activities.items())