如何将字典中的键与列表中的元素进行匹配,并将这些键值存储到python中的另一个字典中?

玛莎梨

我有一本这样的字典:

{'and': {'in': 0.12241083209661485,
         'of': 0.6520996477975429,
         'to': 0.7091938791256235},
 'in': {'and': 0.12241083209661485,
        'of': -0.46306801953487436,
        'to': -0.0654517869126785},
 'of': {'and': 0.6520996477975429,
        'in': -0.46306801953487436,
        'to': 0.8975056783377765},
 'to': {'and': 0.7091938791256235,
        'in': -0.0654517869126785,
        'of': 0.8975056783377765}}

和这样的列表:

list1 = ['the', 'of', 'Starbcks', 'in', 'share', 'for', '%', 'fiscal', '2007',
         'growth', 'year', 'cents', 'earnings', 'a', 'company', '2,400', 'net',
         'abot', 'range', 'stores', 'revene', 'sales', 'gidance', '``', "''",
         'earnings', 'provides', 'wew', 'net']

我想遍历列表并检查与列表中的键相等的词,然后将这些键值添加到另一个字典中。

像本例一样,我希望将其作为结果:

new_dict = {'in': {'and': 0.12241083209661485,
                   'of': -0.46306801953487436,
                   'to': -0.0654517869126785},
            'of': {'and': 0.6520996477975429,
                   'in': -0.46306801953487436,
                   'to': 0.8975056783377765}}

我正在做这样的事情:

for elem in l:
    temp_dict = dict((key,value) for key,value in similarity_matrix.iteritems() if key == elem)
print temp_dict

但是我得到{}了我的结果。怎么了?如何解决?

编辑:

现在,我采取了这个:

OrderedDict(for k in list1:
    if k in d:
        new_d[k] = d[k]
    else:
        new_d[k] = 0)

也就是说,不存在的键在new_d中的值为0。但是,有什么方法可以使字典与list1中的单词具有相同的顺序吗?

像这样的输出应该是:

new_d : {'the' : 0, 'of': {'and': 0.6520996477975429, 'in': -0.46306801953487436,'to': 0.8975056783377765}, 'Starbucks' : 0, ......}
帕德拉克·坎宁安(Padraic Cunningham)
list1 = ['the', 'of', 'Starbcks', 'in', 'share', 'for', '%', 'fiscal', '2007', 'growth', 'year', 'cents', 'earnings', 'a', 'company', '2,400', 'net', 'abot', 'range', 'stores', 'revene', 'sales', 'gidance', '``', "''", 'earnings', 'provides', 'wew', 'net']
d={'and': {'of': 0.6520996477975429, 'in': 0.12241083209661485, 'to': 0.7091938791256235}, 'of': {'and': 0.6520996477975429, 'to': 0.8975056783377765, 'in': -0.46306801953487436}, 'in': {'and': 0.12241083209661485, 'of': -0.46306801953487436, 'to': -0.0654517869126785}, 'to': {'and': 0.7091938791256235, 'of': 0.8975056783377765, 'in': -0.0654517869126785}}
new_d ={}
for k in list1:
    if k in d:
        new_d[k] = d[k]
print(new_d)
{'of': {'and': 0.6520996477975429, 'to': 0.8975056783377765, 'in': -0.46306801953487436}, 'in': {'and': 0.12241083209661485, 'of': -0.46306801953487436, 'to': -0.0654517869126785}}

或dict理解:

new_d ={ k: d[k] for k in list1 if k in d}

检查键是否在字典或集合中 O(1)

使用您自己的代码,您可以执行以下操作检查密钥是否在列表中:

temp_dict = dict((key,value) for key,value in d.iteritems() if key in set(list1))

为了保持添加项目的顺序,您需要使用collections.OrderedDict

from collections import OrderedDict
new_d = OrderedDict(((k,d[k]) if k in d else (k,0) for k in list1 ))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将字典的前2个最大键和值放在另一个字典中

来自分类Dev

将一个字典的元素与另一个字典中的值范围进行比较

来自分类Dev

如何从字典数组中获取字典的数组(例如arrayGroupBy),其中某个键的值与另一个字典键的值匹配

来自分类Dev

如何在Python中从另一个字典复制唯一键和值

来自分类Dev

使用键,一个字典中的值来获取python中另一个字典中的值

来自分类Dev

在python 3的另一个字典中添加带有静态键的字典

来自分类Dev

如何有效地将字典中的字符串列表与Python中的另一个字典列表进行比较?

来自分类Dev

如何根据python中另一个字典键的匹配来修改字典中的键值列表?

来自分类Dev

将字典中的值列表除以另一个字典中的值列表

来自分类Dev

如何从另一个字典中减去一个字典的值并将结果写入第三个字典?

来自分类Dev

如何映射键,在另一个字典中查找键?

来自分类Dev

从另一个字典中删除字典(python 3中的奇怪行为)

来自分类Dev

比较两个字典的键,并创建一个包含键,值对的字典,该值对与另一个字典中的键不匹配-Python

来自分类Dev

如何将字典的键值与另一个字典的值匹配并附加结果?

来自分类Dev

如何将3个列表压缩到python中的一个字典中?

来自分类Dev

将字典的值列表替换为另一个字典中的对应键值映射

来自分类Dev

将一个字典中的空列表的键与另一个包含该键作为值的字典合并后,找到最小的集合

来自分类Dev

如何遍历字典中的键并与另一个字典中的键/值匹配

来自分类Dev

运用字典中的元素来创建另一个字典

来自分类Dev

将一个字典的元素与另一个字典中的值范围进行比较

来自分类Dev

将包含列表的字典追加到python中的另一个字典

来自分类Dev

如何基于Python中的匹配键将键值对添加到另一个字典列表中的现有字典列表中

来自分类Dev

将一个字典中的值与 Python 中另一个字典中的值进行比较

来自分类Dev

将字典中的键复制到另一个字典

来自分类Dev

如何从另一个 python 字典中获取一个字典中的相应列表值,其中它们被列为键,比较并打印出一个 csv?

来自分类Dev

如何根据匹配的顶级键将元素从一个字典插入到另一个字典

来自分类Dev

使用另一个字典列表中的键对字典列表进行排序

来自分类Dev

如何将字典附加到 Python3 中的另一个字典字符串键?

来自分类Dev

当值与列表中的文件匹配时,用另一个字典替换字典中的项目

Related 相关文章

  1. 1

    将字典的前2个最大键和值放在另一个字典中

  2. 2

    将一个字典的元素与另一个字典中的值范围进行比较

  3. 3

    如何从字典数组中获取字典的数组(例如arrayGroupBy),其中某个键的值与另一个字典键的值匹配

  4. 4

    如何在Python中从另一个字典复制唯一键和值

  5. 5

    使用键,一个字典中的值来获取python中另一个字典中的值

  6. 6

    在python 3的另一个字典中添加带有静态键的字典

  7. 7

    如何有效地将字典中的字符串列表与Python中的另一个字典列表进行比较?

  8. 8

    如何根据python中另一个字典键的匹配来修改字典中的键值列表?

  9. 9

    将字典中的值列表除以另一个字典中的值列表

  10. 10

    如何从另一个字典中减去一个字典的值并将结果写入第三个字典?

  11. 11

    如何映射键,在另一个字典中查找键?

  12. 12

    从另一个字典中删除字典(python 3中的奇怪行为)

  13. 13

    比较两个字典的键,并创建一个包含键,值对的字典,该值对与另一个字典中的键不匹配-Python

  14. 14

    如何将字典的键值与另一个字典的值匹配并附加结果?

  15. 15

    如何将3个列表压缩到python中的一个字典中?

  16. 16

    将字典的值列表替换为另一个字典中的对应键值映射

  17. 17

    将一个字典中的空列表的键与另一个包含该键作为值的字典合并后,找到最小的集合

  18. 18

    如何遍历字典中的键并与另一个字典中的键/值匹配

  19. 19

    运用字典中的元素来创建另一个字典

  20. 20

    将一个字典的元素与另一个字典中的值范围进行比较

  21. 21

    将包含列表的字典追加到python中的另一个字典

  22. 22

    如何基于Python中的匹配键将键值对添加到另一个字典列表中的现有字典列表中

  23. 23

    将一个字典中的值与 Python 中另一个字典中的值进行比较

  24. 24

    将字典中的键复制到另一个字典

  25. 25

    如何从另一个 python 字典中获取一个字典中的相应列表值,其中它们被列为键,比较并打印出一个 csv?

  26. 26

    如何根据匹配的顶级键将元素从一个字典插入到另一个字典

  27. 27

    使用另一个字典列表中的键对字典列表进行排序

  28. 28

    如何将字典附加到 Python3 中的另一个字典字符串键?

  29. 29

    当值与列表中的文件匹配时,用另一个字典替换字典中的项目

热门标签

归档