看起来您正在使用psychopy模块,根据它的源代码显示getMsPerFrame()
返回:
return msPFavg, msPFstd, msPFmed #, msdrawAvg, msdrawSD, msfree
Hash 符号 ( #
) 是 Python 中的注释,因此这意味着返回的值是一个元组。如果返回值是数组,则可以像这样访问所需的值:
>>> print(getMsPerFrame())
(123, 90, 154)
>>> print(getMsPerFrame()[0])
123
正如您所看到的,这是一个相当糟糕的设计,因为它需要阅读源代码才能理解您所追求的数字的含义。如果您将来发现自己处于类似情况,我将留下原始答案。
如果visual.getMsPerFrame()
返回这样的字典:
>>> print(frame2)
{'max': 154, 'avg': 123, 'min': 90}
然后你可以像这样按名称访问它的一部分:
>>> print(frame['avg'])
123
如果它返回一个这样的数组:
>>> print(frame2)
[154, 123, 90]
然后你必须知道哪个元素是平均值。假设第二个看起来像这样(数组索引为零):
>>> print(frame[1])
123
如果它返回一个这样的字典数组:
>>> print(frame2)
[{'max': 154}, {'avg': 123}, {'min': 90}]
您可以像这样使用列表理解:
>>> print([item['avg'] for item in frame2 if item.keys()[0] == 'avg'][0])
123
(好吧,这有点傻,请只发布输出print(frames2)
)好吧(这些天我在学习 Python 时玩得很开心)像这样的元组列表怎么样:
>>> print(frame2)
[('max', 154), ('avg', 123), ('min', 90)]
这里的列表理解更容易理解:
>>> print([value for key, value in frame2 if key=='avg'][0])
123