使用defaultdict作为跟踪数据的容器 | 阿小信的博客
阿小信大人的头像
Life is short (You need Python) Bruce Eckel

使用defaultdict作为跟踪数据的容器2014-09-02 04:32

例如跟踪字符串s中每个单词的位置:

>>> from collections import defaultdict
>>> s="ashin chen C ashin chen C ashin chen C"
>>> words = s.split()
>>> wordlocations=defaultdict(list)
>>> for n, w in enumerate(words):
...   wordlocations[w].append(n)
...
>>> wordlocations
defaultdict(<type 'list'>, {'ashin': [0, 3, 6], 'chen': [1, 4, 7], 'C': [2, 5, 8]})
>>>

wordlocations[w]在遇到第一个单词时将失败,但是不会抛出异常,而是调用作为default_factory提供的函数list来创建一个新值。相当于wordlocations.setdefault(w, []).append(n)。但是这个速率会慢两倍。

如果您觉得从我的分享中得到了帮助,并且希望我的博客持续发展下去,请点击支付宝捐赠,谢谢!

若非特别声明,文章均为阿小信的个人笔记,转载请注明出处。文章如有侵权内容,请联系我,我会及时删除。

#Python#  
分享到:
阅读[1144] 评论[0]

你可能也感兴趣的文章推荐

本文最近访客

发表评论