字典元素的索引

键值对添加到字典中以后,如果需要对其中的某个或某些键值对进行处理,首先需要将它们从字典中找出来,这就是字典元素的索引。[大谦MATLAB,dqmatlab点com]

获取键和值

字典的元素由键值对组成,有键和值两个部分,所以字典元素的索引包括键的索引和值的索引。首先创建字典对象并添加键值对。

【MATLAB】

code.matlab
>> IDs=["No001" "No002" "No003"];
>> Names=["刘丹" "朱晓琳" "马忠"];
>> d=dictionary(IDs,Names);

【Python】

code.python
>>> dt={'No001':'刘丹', 'No002':'朱晓琳', 'No003':'马忠'}

本节下面的内容基于上面创建的字典对象进行介绍。

获取字典中所有键值对中的键。

【MATLAB】

code.matlab
>> k=keys(d)
k=
  3×1 string 数组
    "No001"
    "No002"
    "No003"
>> k(1)    %获取第1个键
ans=
    "No001"

【Python】

Python中用字典对象的keys方法获取所有键。下面获取字典对象dt的所有键。

code.python
>>> kys=dt.keys()
>>> kys
dict_keys(['No001', 'No002', 'No003'])

keys方法返回的是dict_keys类型的数据,将它转换为列表。

code.python
>>> lkys=list(kys)  #转换为列表
>>> lkys
['No001', 'No002', 'No003']

遍历列表,输出所有键。

code.python
>>> for ky in lkys:
        print(ky)

输出结果为:

code.python
No001
No002
No003

获取第1个键:

code.python
>>> lkys[0]
'No001'

也可以结合使用next函数和iter函数获取第1个键:

code.python
>>> next(iter(dt))
'No001'

下面获取字典中的所有值。

【MATLAB】

code.matlab
>> v=values(d)
v=
  3×1 string 数组
    "刘丹"
    "朱晓琳"
    "马忠"
>> v(1)    %获取第1个值
ans=
    "刘丹"

【Python】

Python中用字典对象的values方法获取所有值。下面获取字典对象dt的所有值。

code.python
>>> val=dt.values()
>>> val
dict_values(['刘丹', '朱晓琳', '马忠'])

获取第1个值。

code.python
>>> list(val)[0]
'刘丹'

也可以根据指定的键获取对应的值。

code.python
>>> dt[next(iter(dt))]
'刘丹'

根据给定的键获取键对应的值。

【MATLAB】

MATLAB中在字典名称后面跟小括号(()),在括号内输入键的名称,可以获取该键对应的值。下面获取字典对象d中键"No001"对应的值。

code.matlab
>> d("No001")
ans=
    "刘丹"

【Python】

Python中在字典名称后面跟中括号([]),在括号内输入键的名称,可以获取该键对应的值。下面获取字典对象dt中键"No001"对应的值。

code.python
>>> dt['No001']
'刘丹'

使用字典对象的get方法也可以获得相同的结果:

code.python
>>> dt.get('No001')
'刘丹'

下面获取字典中所有的键值对。

【MATLAB】

MATLAB中使用entries函数可以获取字典的所有键值对。

code.matlab
>> entries(d)
ans =
  3×2 table
      Key       Value
    _______    _______
    "No001"    "刘丹"
    "No002"    "朱晓琳"
    "No003"    "马忠"

【Python】

Python中使用字典对象的items方法可以获取字典的所有键值对。

code.python
>>> dt.items()
dict_items([('No001', '刘丹'), ('No002', '朱晓琳'), ('No003', '马忠')])

键在字典中是否存在

由于要求字典中的键在字典的所有键中必须是唯一的,所以经常有必要判断指定的键在字典中是否已经存在。

【MATLAB】

MATLAB中使用isKey函数判断字典中是否包含指定的键,包含时返回1,否则返回0。

code.matlab
>> tf=isKey(d,'No002')
tf =
  logical
   1

【Python】

Python中使用in或not in运算符判断字典中是否包含或不包含指定的键,包含时返回True,否则返回False。

code.python
>>> 'No001' in dt
True
>>> 'No002' not in dt
False