相关疑难解决方法(0)

不能pickle defaultdict

我有一个看起来像这样的defaultdict:

dict1 = defaultdict(lambda: defaultdict(int))
Run Code Online (Sandbox Code Playgroud)

问题是,我不能用cPickle来腌制它.我在这里找到的解决方案之一是使用模块级函数而不是lambda.我的问题是,什么是模块级功能?如何在cPickle中使用字典?

python pickle defaultdict

46
推荐指数
6
解决办法
1万
查看次数

Python避免lambda for key需要两个callables(函数组合)

我正在研究项目euler问题14,作为第一次尝试,我掀起了这个强力解决方案:

def collatz(n, memo={1: [1]}):
    if n not in memo:
        memo[n] = [n] + collatz(3 * n + 1 if n % 2 else n // 2)
    return memo[n]

def p014():
    return max(xrange(1, 10**6), key=lambda n: len(collatz(n)))
Run Code Online (Sandbox Code Playgroud)

我的问题是关于lambda,我通常不愿意使用它们,但在这种情况下我不知道有什么优雅的方法可以避免它.functools链接两个callables 有什么内容或其他东西,或者我缺少任何其他简洁的替代品?

python lambda key max

5
推荐指数
1
解决办法
418
查看次数

标签 统计

python ×2

defaultdict ×1

key ×1

lambda ×1

max ×1

pickle ×1