假设我使用容器映射在MATLAB中创建一个字典,其中包含以下映射:
laravel eloquent
将字典表示为D。
现在我有一个输入列表1-A;
2-B;
3-C;
,我期待的是[2,1,3]
。问题是,我不能仅使用[B,A,C]
作为D的输入列表,而是只为D逐个输入[2,1,3]
并且每次都获得2,1 and 3
。
这可以完成工作,但正如您所看到的,它的效率会降低一些。
所以我的问题是:我还能做些什么来让字典同时返回整个列表吗?
答案 0 :(得分:1)
据我所知,没有像python的dict.items
这样的单步解决方案。但是,你可以排成几行。 mydict.keys()
为您提供了dict的键作为单元格数组,mydict.values()
为您提供了作为单元格数组的值,因此您可以(理论上)将这些值组合在一起:
>> mykeys = mydict.keys();
>> myvals = mydict.values();
>> mypairs = [mykeys',myvals']
mypairs =
3×2 cell array
'A' [1]
'B' [2]
'C' [3]
但是,原则上地图是无序的,我在MATLAB文档中找不到任何说明订单返回keys
并且values
返回的订单必须一致的{({{ 3}})。因此,如果您想要更加安全,可以使用所需键的单元格数组values
来调用,在这种情况下,这些键将是所有键:
>> mykeys = mydict.keys();
>> myvals = mydict.values(mykeys);
>> mypairs = [mykeys',myvals']
mypairs =
3×2 cell array
'A' [1]
'B' [2]
'C' [3]