解构和重构python词典

时间:2016-04-29 09:18:06

标签: python dictionary

我有一个字典,我需要在两个列表(或任何其他类型的工作)中解构它的键和值,然后在另一个函数中,构建完全相同的字典,放回键和值。什么是接近这个的正确方法?

4 个答案:

答案 0 :(得分:2)

d = {'jack': 4098, 'sape': 4139}
k, v = d.keys(), d.values()

# Do stuff with keys and values
# -

# Create new dict from keys and values
nd = dict(zip(k, v))

答案 1 :(得分:0)

更好不要解构它。如果您需要键和值作为列表,您可以使用以下方法获得它。

keyList=list(dict.keys())
valueList = [dict[key] for key in keyList] or [dict[key] for key in dict.keys()]

希望它有所帮助。

答案 2 :(得分:0)

将Dict解构为两个列表

>>> test_dict={"a":1, "b":2}
>>> keyList=[]
>>> valueList =[]
>>> for key,val in test_dict.items():
...    keyList.append(key)
...    valueList.append(val)
>>> print valueList
[1, 2]
>>> print keyList
['a', 'b']

要从两个键和值列表构造,我将使用zip方法和dict理解。

>>> {key:val for key,val in zip(keyList,valueList)}
{'a': 1, 'b': 2}

答案 3 :(得分:0)

您可以使用dict.items()从字典中获取所有键值对,然后直接存储它们......

>>> d = {"foo": 42, "bar": 23}
>>> items = list(d.items())
>>> dict(items)
{'bar': 23, 'foo': 42}

...或使用zip

将它们分发到两个单独的列表中
>>> keys, values = zip(*d.items())
>>> dict(zip(keys, values))
{'bar': 23, 'foo': 42}