我有:
somelist = ['a', 'b', 'c', 'd']
我希望这样,列表将转换为字典
somedict = {'a' : 1, 'b' : 1, 'c' : 1, 'd' : 1}
所以我做了:
somedict = dict(zip(somelist, [1 for i in somelist]))
它确实有效,但不确定它是否是最有效或最快速的方式
其他任何方式,最好是最简单的方法吗?
答案 0 :(得分:10)
您可以使用fromkeys()
:
somelist = ['a', 'b', 'c', 'd']
somedict = dict.fromkeys(somelist, 1)
你也可以使用词典理解(感谢Steven Rumbalski提醒我)
somedict = {x: 1 for x in somelist}
fromkeys
稍微提高效率,如此处所示。
>>> timeit('{a: 1 for a in range(100)}')
6.992431184339719
>>> timeit('dict.fromkeys(range(100), 1)')
5.276147376280434