Sar*_*els 83 python dictionary tuples list
这是我目前如何在Python中将元组列表转换为字典:
l = [('a',1),('b',2)]
h = {}
[h.update({k:v}) for k,v in l]
> [None, None]
h
> {'a': 1, 'b': 2}
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?似乎应该有一个单行来做这件事.
Sve*_*ach 138
(注意:"hash"在Python中称为"字典".)
>>> my_list = [('a', 1), ('b', 2)]
>>> dict(my_list)
{'a': 1, 'b': 2}
Run Code Online (Sandbox Code Playgroud)
Fog*_*ird 23
该dict构造函数接受输入的完全一样,你把它(键/值元组).
>>> l = [('a',1),('b',2)]
>>> d = dict(l)
>>> d
{'a': 1, 'b': 2}
Run Code Online (Sandbox Code Playgroud)
从文档:
例如,这些都返回一个等于{"one"的字典:1,"two":2}:
Run Code Online (Sandbox Code Playgroud)dict(one=1, two=2) dict({'one': 1, 'two': 2}) dict(zip(('one', 'two'), (1, 2))) dict([['two', 2], ['one', 1]])
peg*_*gah 19
似乎这里的每个人都假设元组列表在键和值之间具有一对一的映射(例如,它没有字典的重复键)。由于这是搜索此主题的第一个问题,因此我发布了一个更一般情况的答案,其中我们必须处理重复项:
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]}
Run Code Online (Sandbox Code Playgroud)
随着dict理解:
h = {k:v for k,v in l}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
79755 次 |
| 最近记录: |