我最近在python中发现了一个有趣的功能
如果输入:
y=[[1,2],[3,4]]
sum(y,[])
Run Code Online (Sandbox Code Playgroud)
输出为: [1, 2, 3, 4]
有谁知道为什么带有空列表的一系列列表的总和给出y的扁平化版本(即:y的所有子列表都作为一个列表)?
我本来希望输出是串联的:
[1,2],[3,4],[]
谢谢
我知道以前有人问过这个问题,但我发现的问题是几年前问的,所以我怀疑 Spyder 在此期间进行了更新。
例如,是否有可能像在 VS Code 中那样在 Spyder(对于 python)中查看递归程序的调用堆栈?
如果是这样,请有人指导我如何做到这一点
谢谢
我正在实现装饰器,并试图获取输出
请有人可以解释为什么.format(i for i in args)不进行迭代John,Tom而是打印变量的位置args
def doDouble (func):
def wrapper_doDouble (*args):
func(*args)
func(*args)
return wrapper_doDouble
@doDouble
def functionToPrint(*args):
print ("Hi {}".format(i for i in args))
functionToPrint("John", "Tom")
Run Code Online (Sandbox Code Playgroud)
这是我当前的输出:
Hi <generator object functionToPrint.<locals>.<genexpr> at 0x03CEFD80>
Hi <generator object functionToPrint.<locals>.<genexpr> at 0x03CDA1B0>
Run Code Online (Sandbox Code Playgroud)