112 这是我目前在Python中将元组列表转换为字典的方式: l = [('a',1),('b',2)] h = {} [h.update({k:v}) for k,v in l] > [None, None] h > {'a': 1, 'b': 2} 有没有更好的办法?似乎应该有一种做法。 python list dictionary tuples — 萨拉·弗塞尔斯 source
179 只需dict()直接调用元组列表 >>> my_list = [('a', 1), ('b', 2)] >>> dict(my_list) {'a': 1, 'b': 2} — 斯文·马纳赫(Sven Marnach) source 1 Derp,我知道会有一个简单的方法来做……从Ruby来,尝试学习Python的做事方式。谢谢! — 萨拉·弗赛尔斯 5 @chandresh这在Python 3中确实有效,因此不需要更新。 — Sven Marnach '18 @SvenMarnach,这是我上面在py 3.5终端上编写的同一命令的输出。追溯(最近一次调用最近):文件“ <ipython-input-313-7bb3559567ff>”,在<module> dict(my_list)中的第1行,TypeError:'Dictionary'对象不可调用 — CKM 4 @chandresh这与Python 3无关-这是因为您有一个名为的变量dict,它遮盖了同名的Python内置函数。你绝对不应该那样做。 — Sven Marnach '18 @SvenMarnach哦。谢谢。有效。实际上,我从网络上获得了一些代码,并试图运行它。看来作者dict从我那里得到的错误用作变量名。再次感谢。 — CKM
23 该dict构造函数接受输入的完全一样,你把它(键/值元组)。 >>> l = [('a',1),('b',2)] >>> d = dict(l) >>> d {'a': 1, 'b': 2} 从文档中: 例如,所有这些都返回等于{“ one”:1,“ two”:2}的字典: dict(one=1, two=2) dict({'one': 1, 'two': 2}) dict(zip(('one', 'two'), (1, 2))) dict([['two', 2], ['one', 1]]) — FogleBird source
7 似乎每个人都假定元组列表在键和值之间具有一对一的映射关系(例如,它没有字典的重复键)。由于这是在该主题上搜索的第一个问题,因此我针对一个更常见的情况发布了答案,在这种情况下,我们必须处理重复项: mylist = [(a,1),(a,2),(b,3)] result = {} for i in mylist: result.setdefault(i[0],[]).append(i[1]) print(result) >>> result = {a:[1,2], b:[3]} — 佩加 source