所以我有一个这样的对象列表:
['bob', 'tob', 'mom'], ['tom', 'apa'], ['cat']
我想创建一个这样的字典字典:
{
{0: 'bob', 1: 'tob', 2: 'mom'},
{0: 'tom', 1: 'apa'},
{0: 'cat'}
}
完成这项工作的pythonic方法是什么?谢谢!
所以我有一个这样的对象列表:
['bob', 'tob', 'mom'], ['tom', 'apa'], ['cat']
我想创建一个这样的字典字典:
{
{0: 'bob', 1: 'tob', 2: 'mom'},
{0: 'tom', 1: 'apa'},
{0: 'cat'}
}
完成这项工作的pythonic方法是什么?谢谢!
看起来您只想将 a list
of list
s 转换为 a set
of dict
s ,其中索引映射到值。
好吧,你不能这样做,因为 aset
不能保存像dict
s 这样的不可散列值。但是您可以轻松地将其转换为其中的list
一个dicts
。
每一个list
都可以转换成一个dict
just 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'}]
index_as_key = dict(enumerate(['bob','tob','mom']))
如果您在遍历列表时只想要列表项的索引,则无需创建中间字典:
for i, item in enumerate(['bob','tob','mom']):
# do something