从多个列表创建字典

时间:2020-06-09 17:55:32

标签: python dictionary

我想创建一个考虑多个列表的字典,我检查了最常见的方法是使用zip函数。但是,我认为这不适用于我的情况。

假设您有一个名称列表和另外两个用于存储名词和动词的列表。因此,列表名称中的每个项目都必须根据其显示的列表(名词或动词)进行分类。我有类似以下内容:

import collections

noun=['abc','school']
verb=['study','read']

name=['abc','study','read','school']

d=collections.OrderedDict()

for word in name:
    if word in noun:
        d.update({word:'noun'})
    else:
        d.update({word:'verb'})


print("Modified Dict : ")
for (key, value) in d.items() :
    print(key , ":", value )

我想这可以通过更优化的方式来完成。只是我不知道会怎样。

谢谢

1 个答案:

答案 0 :(得分:0)

您已经在评论中得到答案,如何通过dict理解来做到这一点。

我展示了如何使您的代码更具通用性。

您可以将nousverb保留在词典中,然后可以将key,val与一个if一起使用。

这样,您可以在字典data中添加新类别,其余代码相同。

data = {
    'noun': ['abc','school'],
    'verb': ['study','read'],
    'stopword': ['at','or'],
}    

name = ['abc', 'study', 'read', 'school', 'at', 'or']

d = {}

for word in name:
    for key, value in data.items():
        if word in value:
            d.update({word: key})

for key, value in d.items():
    print(key, ":", value )