我有一个包含多个元组的列表,例如:
[('a_key', 'a value'), ('another_key', 'another value')]
其中第一个元组值充当字典键。 我现在正在寻找一种类似python的方式来访问键/值对,例如:
"mylist.a_key"
或"mylist['a_key']"
没有迭代列表。任何想法?
答案 0 :(得分:14)
没有任何迭代,你不能这样做。您将需要迭代将其转换为dict,此时密钥访问将变为可能无法迭代,或者您将需要针对每个密钥访问迭代它。转换为dict似乎是更好的主意 - 从长远来看它更有效,但更重要的是,它代表了你实际看到这种数据结构的方式 - 作为键和值对。
>>> x = [('a_key', 'a value'), ('another_key', 'another value')]
>>> y = dict(x)
>>> y['a_key']
'a value'
>>> y['another_key']
'another value'
答案 1 :(得分:3)
如果您自己生成列表,则可以在源代码中将其创建为字典(允许键值对)。
否则,Van Gale的默认指示是我想的方式。
编辑:
如评论中所述,此处不需要defaultdict,除非您需要处理类似于列表中具有相同键的多个值的极端情况。尽管如此,如果你最初可以将“列表”生成为字典,那么你可以节省自己不得不在之后迭代它。