Python 如何查看实际输出而不是<;生成器对象>;?

Python 如何查看实际输出而不是<;生成器对象>;?,python,python-3.x,function,dictionary,generator,Python,Python 3.x,Function,Dictionary,Generator,我一直在玩弄字典,试着让它们变得更舒服。我遇到了,这让我想到了潜在的应用。在超越自己之前,我试着从一个基本的例子开始 import numpy as np times = np.linspace(0,20,21) obs = np.linspace(50,100,21) def square(x): return x**2 def cube(x): return x**3 def root_six(x): return x**(1/6) dispatcher =

我一直在玩弄字典,试着让它们变得更舒服。我遇到了,这让我想到了潜在的应用。在超越自己之前,我试着从一个基本的例子开始

import numpy as np

times = np.linspace(0,20,21)
obs = np.linspace(50,100,21)

def square(x):
    return x**2

def cube(x):
    return x**3

def root_six(x):
    return x**(1/6)

dispatcher = {'sq':square, 'cb':cube, '6th':root_six}

def gimme(func_dict=dispatcher, values=times):
    res = []
    for func in func_dict:
        res.append(func(t) for t in values)
    return res

gg = np.array(list(gimme())) # I tried various combinations
print(gg)

>> [<generator object gimme.<locals>.<genexpr> at 0x101b886d0>
>> <generator object gimme.<locals>.<genexpr> at 0x108fc1678>
>> <generator object gimme.<locals>.<genexpr> at 0x108fc1a40>]
将numpy导入为np
时间=np.linspace(0,20,21)
obs=np.linspace(50100,21)
def方形(x):
返回x**2
def多维数据集(x):
返回x**3
def root_六(x):
返回x**(1/6)
调度程序={'sq':正方形,'cb':立方体,'6th':根{u-six}
def gimme(func_dict=dispatcher,value=times):
res=[]
对于本票中的本票:
res.append(func(t)表示值中的t)
返回res
gg=np.array(list(gimme())#我尝试了各种组合
打印(gg)
>> [
>> 
>> ]

如何测试代码是否正确执行?

不要附加生成器表达式。我不明白你为什么要在这里这么做。使用列表理解:

res.append([func(t) for t in values])
如果您想为
func\u dict
中的每个
func
创建一个列表。如果没有,请使用将消耗发电机的
扩展

不使用括号将创建未计算的生成器表达式。如果您进行了评估,您也会发现代码中的另一个问题:
func
只是函数的字符串名称!您应该将
for
循环更改为遍历
值,而不是:

for func in func_dict.values():
    res.append([func(t) for t in values])

不要附加生成器表达式。我不明白你为什么要在这里这么做。使用列表理解:

res.append([func(t) for t in values])
如果您想为
func\u dict
中的每个
func
创建一个列表。如果没有,请使用将消耗发电机的
扩展

不使用括号将创建未计算的生成器表达式。如果您进行了评估,您也会发现代码中的另一个问题:
func
只是函数的字符串名称!您应该将
for
循环更改为遍历
值,而不是:

for func in func_dict.values():
    res.append([func(t) for t in values])