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