具有可选标志的值列表的Pythonic表示

Chr*_*ell 0 python

首先出现在我脑海中的是一个字典,其中键作为列表值,字典值默认为None,但这对我来说感觉不太理想.任何人都可以提出单一结构(即没有单独的'选项'dict)替代方案,其中dict[key]没有标志设置的项目返回None,否则返回标志列表?如果我忽略了一些明显的惯例,我会道歉.

这种结构的简单用法可以是order每个项目可以选择性地包含修改(即没有坚果)的实例.

Pau*_*McG 5

也许defaultdict会这样做:

from collections import defaultdict

flags = defaultdict(lambda : None)
flags.update({'F1':True,'F3':True,'F8':True})

for f in 'F1 F2 F3 F4 F5 F6 F7 F8'.split():
    print f, '->', flags[f]
Run Code Online (Sandbox Code Playgroud)

打印:

F1 -> True
F2 -> None
F3 -> True
F4 -> None
F5 -> None
F6 -> None
F7 -> None
F8 -> True
Run Code Online (Sandbox Code Playgroud)