微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何根据句子制作带有多个列表的压缩 OrderedDict?

如何解决如何根据句子制作带有多个列表的压缩 OrderedDict?

我有六个列表,其中三个对应于给定的句子,另外三个列表对应于前面列表的标签。我想根据句子的顺序将这些列表压缩到 OrderedDict 中。

from collections import OrderedDict

sentence = 'Im fucking excited to learn your damn business'

words = ['excited','learn','business']
stopwords = ['Im','to','about','your']
swearwords = ['fucking','damn']

# Labels
words_labels = ['friendly','interested','interested']
stopwords_labels = ['stopword'] * len(stopwords)
swearwords_labels = ['sweaword'] * len(swearwords)

d = OrderedDict(zip(keys,values))

# Expected output
{
    'Im': 'stopword','fucking': 'swearword','excited': 'friendly','to': 'stopword','learn': 'interested','your': 'stopword'
    'damn': 'swearword','business': 'interested'
}

解决方法

先做一个重复内容的列表,语法是

stopwords_labels = ['stopword'] * len(stopwords)

然后建立所有内容和所有标签的列表,然后你就很好

keys = [*words,*stopwords,*swearwords]
values = [*words_labels,*stopwords_labels,*swearwords_labels]
mappings = dict(zip(keys,values))
d = OrderedDict((k,mappings[k]) for k in sentence.split())

您也可以使用这种连接语法

keys = words + stopwords + swearwords
values = words_labels + stopwords_labels + swearwords_labels

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。