在字典python中添加键的列表值

时间:2016-03-14 18:41:07

标签: python list dictionary

我有以下字典:

centroid = {'A': [1.0, 1.0], 'B': [2.0, 1.0]}

使用上面的词典,我创建了两个不同的词典并将它们附加到列表中:

for key in centroids:
        clusters_list.append(dict(zip(key, centroids.get(key))))

但是当我检查我的cluster_list时,我得到以下数据:

[{'A': 1.0}, {'B': 2.0}]
而不是 [{'A': [1.0, 1.0]}, {'B': [2.0, 1.0]}]。 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:6)

您可以使用列表理解:

对于Python 2:

cluster_list = [{k: v} for k, v in centroid.iteritems()]
# [{'A': [1.0, 1.0]}, {'B': [2.0, 1.0]}]

对于Python 3:

cluster_list = [{k: v} for k, v in centroid.items()]

答案 1 :(得分:0)

您还可以使用starmap模块中的itertools

In [1]: from itertools import starmap
In [2]: list(starmap(lambda k,v: {k:v}, centroid.items()))
Out[2]: [{'B': [2.0, 1.0]}, {'A': [1.0, 1.0]}]

当然,它并不保证结果列表中的顺序。