键值对添加到字典中以后,如果需要对其中的某个或某些键值对进行处理,首先需要将它们从字典中找出来,这就是字典元素的索引。[大谦MATLAB,dqmatlab点com]
获取键和值
字典的元素由键值对组成,有键和值两个部分,所以字典元素的索引包括键的索引和值的索引。首先创建字典对象并添加键值对。
【MATLAB】
>> IDs=["No001" "No002" "No003"];
>> Names=["刘丹" "朱晓琳" "马忠"];
>> d=dictionary(IDs,Names);
【Python】
>>> dt={'No001':'刘丹', 'No002':'朱晓琳', 'No003':'马忠'}
本节下面的内容基于上面创建的字典对象进行介绍。
获取字典中所有键值对中的键。
【MATLAB】
>> k=keys(d)
k=
3×1 string 数组
"No001"
"No002"
"No003"
>> k(1) %获取第1个键
ans=
"No001"
【Python】
Python中用字典对象的keys方法获取所有键。下面获取字典对象dt的所有键。
>>> kys=dt.keys()
>>> kys
dict_keys(['No001', 'No002', 'No003'])
keys方法返回的是dict_keys类型的数据,将它转换为列表。
>>> lkys=list(kys) #转换为列表
>>> lkys
['No001', 'No002', 'No003']
遍历列表,输出所有键。
>>> for ky in lkys:
print(ky)
输出结果为:
No001
No002
No003
获取第1个键:
>>> lkys[0]
'No001'
也可以结合使用next函数和iter函数获取第1个键:
>>> next(iter(dt))
'No001'
下面获取字典中的所有值。
【MATLAB】
>> v=values(d)
v=
3×1 string 数组
"刘丹"
"朱晓琳"
"马忠"
>> v(1) %获取第1个值
ans=
"刘丹"
【Python】
Python中用字典对象的values方法获取所有值。下面获取字典对象dt的所有值。
>>> val=dt.values()
>>> val
dict_values(['刘丹', '朱晓琳', '马忠'])
获取第1个值。
>>> list(val)[0]
'刘丹'
也可以根据指定的键获取对应的值。
>>> dt[next(iter(dt))]
'刘丹'
根据给定的键获取键对应的值。
【MATLAB】
MATLAB中在字典名称后面跟小括号(()),在括号内输入键的名称,可以获取该键对应的值。下面获取字典对象d中键"No001"对应的值。
>> d("No001")
ans=
"刘丹"
【Python】
Python中在字典名称后面跟中括号([]),在括号内输入键的名称,可以获取该键对应的值。下面获取字典对象dt中键"No001"对应的值。
>>> dt['No001']
'刘丹'
使用字典对象的get方法也可以获得相同的结果:
>>> dt.get('No001')
'刘丹'
下面获取字典中所有的键值对。
【MATLAB】
MATLAB中使用entries函数可以获取字典的所有键值对。
>> entries(d)
ans =
3×2 table
Key Value
_______ _______
"No001" "刘丹"
"No002" "朱晓琳"
"No003" "马忠"
【Python】
Python中使用字典对象的items方法可以获取字典的所有键值对。
>>> dt.items()
dict_items([('No001', '刘丹'), ('No002', '朱晓琳'), ('No003', '马忠')])
键在字典中是否存在
由于要求字典中的键在字典的所有键中必须是唯一的,所以经常有必要判断指定的键在字典中是否已经存在。
【MATLAB】
MATLAB中使用isKey函数判断字典中是否包含指定的键,包含时返回1,否则返回0。
>> tf=isKey(d,'No002')
tf =
logical
1
【Python】
Python中使用in或not in运算符判断字典中是否包含或不包含指定的键,包含时返回True,否则返回False。
>>> 'No001' in dt
True
>>> 'No002' not in dt
False