【发布时间】:2014-10-05 07:11:16
【问题描述】:
我有一个很长的元素字典,我想删除所有只有一个元素的列表的字典条目。 例如
wordDict={'aardvark':['animal','shell'], 'bat':['animal', 'wings'],
'computer':['technology'], 'donut':['food','sweet']}
我想删除“计算机”条目,因为其中的列表只有一个元素。我首先遍历 wordDict 并将字典中的每个条目放在单独的列表中,使其看起来像这样
wordList=[['animal','shell'],['animal','wings'],['technology'],['food','sweet']]
然后向后遍历该列表,检查列表中每个元素的长度是否大于 1。向后因为向前会导致索引在我删除时发生变化。
所以在 wordList 中,['technology'] 被删除,这就是剩下的
wordList=[['animal','shell'],['animal','wings'],['food','sweet']]
问题在于,随着 wordDict 变得非常大(100k+ 字),将 wordDict 放入列表然后遍历该列表需要很长时间,我想提高效率。
我正在考虑向后遍历字典,检查每个条目是否有多个单词,如果没有,则删除字典条目。最后,需要返回的是一个列表,而不是一个字典,所以索引最终无关紧要,我只是将它们用于排序目的。
有没有办法做到这一点?
【问题讨论】:
标签: python python-3.x dictionary