相关疑难解决方法(0)

如何通过引用传递变量?

Python文档似乎不清楚参数是通过引用还是值传递,以下代码生成未更改的值'Original'

class PassByReference:
    def __init__(self):
        self.variable = 'Original'
        self.change(self.variable)
        print(self.variable)

    def change(self, var):
        var = 'Changed'
Run Code Online (Sandbox Code Playgroud)

有什么我可以通过实际参考传递变量吗?

python reference parameter-passing pass-by-reference

2480
推荐指数
22
解决办法
124万
查看次数

更简单的方法来创建单独变量的字典?

我希望能够将变量的名称作为字符串获取,但我不知道Python是否具有那么多的内省功能.就像是:

>>> print(my_var.__name__)
'my_var'
Run Code Online (Sandbox Code Playgroud)

我想这样做因为我有一堆vars我想变成一本字典,如:

bar = True
foo = False
>>> my_dict = dict(bar=bar, foo=foo)
>>> print my_dict 
{'foo': False, 'bar': True}
Run Code Online (Sandbox Code Playgroud)

但我想要比这更自动的东西.

Python中有locals()vars(),所以我想有一种方法.

python string variables

218
推荐指数
11
解决办法
23万
查看次数

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
查看次数