Python converting a list into a dict with a value of 1 for each key
本问题已经有最佳答案,请猛点这里访问。
我有:
1 | somelist = ['a', 'b', 'c', 'd'] |
我想要它,这样列表就可以转换成听写了
1 | somedict = {'a' : 1, 'b' : 1, 'c' : 1, 'd' : 1} |
号
所以我做到了:
1 | somedict = dict(zip(somelist, [1 for i in somelist])) |
它确实有效,但不确定它是最有效的还是最简单的。
还有其他方法吗,最好是最简单的方法?
您只需使用
1 2 | somelist = ['a', 'b', 'c', 'd'] somedict = dict.fromkeys(somelist, 1) |
你也可以用字典理解(感谢史蒂文·鲁姆巴尔斯基提醒我)
1 | somedict = {x: 1 for x in somelist} |
号
不过,如图所示,
1 2 3 4 | >>> timeit('{a: 1 for a in range(100)}') 6.992431184339719 >>> timeit('dict.fromkeys(range(100), 1)') 5.276147376280434 |