如何在python字典中使用1个命令访问2个键

hua*_*hao 0 python dictionary numpy scipy

我试图从.matscipy的文件加载一些数据io.loadmat().该函数基本上返回一个包含文件中所有数据的字典.如果我只想从数据文件中获取一个值,我可以做类似的事情val_a = io.loadmat(filename)['val_a'].但现在我想取出2个值.我还能用一个命令实现这个目标吗?或者我是否必须首先将字典分配给变量然后逐个获取这两个值?

喜欢

raw_data = io.loadmat(filename)
val_a = raw_data['val_a']
val_b = raw_data['val_b']
Run Code Online (Sandbox Code Playgroud)

但我正在寻找的是类似的东西

val_a, val_b = io.loadmat(filename)['val_a', 'val_b']

通过这样做,我希望避免占用我记忆的文件中不必要的数据.

use*_*ica 8

你说

通过这样做,我希望避免占用我记忆的文件中不必要的数据

如果您的目标是避免阅读您不感兴趣的文件的一部分,那么告诉SciPy不要通过提供一个variable_names参数说明要读取哪些部分来阅读这些部分:

raw_data = scipy.io.loadmat(filename, variable_names=['val_a', 'val_b'])
val_a = raw_data['val_a']
val_b = raw_data['val_b']
Run Code Online (Sandbox Code Playgroud)

在不使用的情况下variable_names,你可以做的最好的事情就是在解压缩你感兴趣的部分后摆脱对dict的引用,让Python回收内存:

raw_data = scipy.io.loadmat(filename)
val_a = raw_data['val_a']
val_b = raw_data['val_b']
del raw_data
Run Code Online (Sandbox Code Playgroud)

没有语法可以一次从dict中提取两个值.