-2

所以我有一个这样的对象列表:

['bob', 'tob', 'mom'], ['tom', 'apa'], ['cat']

我想创建一个这样的字典字典:

{
    {0: 'bob', 1: 'tob', 2: 'mom'},
    {0: 'tom', 1: 'apa'},
    {0: 'cat'}
}

完成这项工作的pythonic方法是什么?谢谢!

4

2 回答 2

3

看起来您只想将 a listof lists 转换为 a setof dicts ,其中索引映射到值。

好吧,你不能这样做,因为 aset不能保存像dicts 这样的不可散列值。但是您可以轻松地将其转换为其中的list一个dicts

每一个list都可以转换成一个dictjust by dict(enumerate(l))。这为您提供了一个列表,该列表的使用方式与原始列表完全相同list(因此d[0]返回与 相同的内容l[0]),这似乎是您想要的。

要将它们放在一个列表中,只需使用列表推导即可。

>>> l=[['bob','tob','mom'],['tom','apa'],['cat']]
>>> d=[dict(enumerate(i)) for i in l]
>>> d
[{0: 'bob', 1: 'tob', 2: 'mom'}, {0: 'tom', 1: 'apa'}, {0: 'cat'}]
于 2012-12-21T23:22:43.257 回答
0
index_as_key = dict(enumerate(['bob','tob','mom']))

如果您在遍历列表时只想要列表项的索引,则无需创建中间字典:

for i, item in enumerate(['bob','tob','mom']):
    # do something
于 2012-12-21T23:23:34.723 回答