Python语法:改变/减少defaultdict?

Python语法:改变/减少defaultdict?,python,defaultdict,Python,Defaultdict,我不确定这个词是什么,但基本上我有一个默认dict形式的word\u集[(word,value),…],它来自一个解析一些原始数据的函数 我还有其他函数:reduceVal(word\u set,min\u val),reduceWord(word\u set,*args),这些函数分别删除以下对:值小于min\u val,其(word)位于[args]中。它们几乎都遵循相同的结构,例如 def reduceVal(word_set, value): "Returns word_set

我不确定这个词是什么,但基本上我有一个默认dict形式的
word\u集
[(word,value),…],它来自一个解析一些原始数据的函数

我还有其他函数:
reduceVal(word\u set,min\u val)
reduceWord(word\u set,*args)
,这些函数分别删除以下对:值小于min\u val,其(word)位于[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_集,甚至不需要定义整个函数

使用dict理解,
defaultdict
在这里是不需要的:

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

在py2.x上,当它返回迭代器时,您应该使用
word\u set.iteritems()

如果您学习使用dict理解,您不需要为所有这些不同的过滤器使用单独的函数。例如,
reduceVal
reduceWord
可以替换为:

# Python 2.7+
{w: v for w, v in word_set.items() if v > value}
{w: v for w, v in word_set.items() if w in args}

# Python 2.6 and earlier
dict((w, v) for w, v in word_set.iteritems() if v > value)
dict((w, v) for w, v in word_set.iteritems() if w in args)