1

用語が何であるかはわかりませんでしたが、基本的に、生データを解析した関数から得られword_setた defaultdict の形式を持っています。[(word, value), ...]

min_val より小さい値を持ち、[args] にそれぞれ (単語) を持つペアを削除する 、 などreduceVal(word_set, min_val)の他の関数があります。reduceWord(word_set, *args)それらはすべてほぼ同じ構造に従います。

def reduceVal(word_set, value):
    "Returns word_set with (k, v) pairs where v > value)"
    rtn_set = defaultdict()
    for (k, v) in word_set.items():
        if v > value:
            rtn_set.update({k:v})
    return rtn_set

新しい rtn_set を作成したり、関数全体を定義したりすることなく、これを表現するより簡潔な、または Pythonic な方法があるかどうか疑問に思っていました

4

2 に答える 2

1

Use a dict-comprehension, defaultdict is not required here:

new_dict = {k:v for k, v in word_set.items() if v > value}

on py2.x you should use word_set.iteritems() as it returns an iterator.

于 2013-09-03T15:38:58.513 に答える