字典对象创建以后,可以对对象进行添加键值对、修改键或值或者删除指定键值对等操作。本节使用8.2.1小节创建的字典对象dicT和dt进行演示。
向字典增加元素
创建字典对象以后,可以向字典对象中添加键值对。
【Excel VBA】
Excel VBA中使用字典对象的Add方法添加键值对,该方法的语法格式为:
dic.Add key, item
其中,dic为字典对象;第1个参数key为键,第2个参数item为键对应的值。注意,字典中的键在所有键中必须是唯一的。
下面向字典对象dicT中添加一个键值对,键为"No010",值为"田欣"。示例文件的存放路径为Samples\ch08\Excel VBA\字典元素的增删改.xlsm。
dicT.Add "No010","田欣"
默认时字典对象中的键名是区分大小写的,即键名"No010"和"no010"会被视为两个不同的名称。如果要求键名有大小写区分,需要将字典对象的CompareMode属性的值设置为1。值为1时键名不区分大小写,值为0时区分大小写。
dicT.CompareMode=1
【Python】
向字典对象dt中添加新的键值对:
>>> dt['No010']='田欣'
>>> dt
{'No001': '刘丹', 'No002': '大谦', 'No003': '马忠', 'No010': '田欣'}
也可以使用字典对象的update方法添加键值对。
>>> dt.update({'No010':'田欣'}) #添加键值对
修改键和值
下面修改字典对象中的键。
【Excel VBA】
Excel VBA中使用字典对象的Key属性可以直接修改原有的键。下面将字典对象dicT中的键"No001"修改为"No004"。示例文件的存放路径为Samples\ch08\Excel VBA\字典元素的增删改.xlsm。
dicT.Key("No001") = "No004"
【Python】
Python中不能直接修改字典的键,所以,对于要修改键的键值对,用它的值和新的键名一起组成一个新的键值对添加到字典中,再把原来的键值对删除。下面将字典对象dicT中的键"No001"改为"No004"。
首先添加一个键为"No004"的键值对,值为键"No001"对应的值。然后删除"No001"对应的键值对。
>>> dt['No004']=dt['No001']
>>> del dt['No001']
查看字典对象中所有的键值对。
>>> dt.items()
dict_items([('No002', '大谦'), ('No003', '马忠'), ('No004', '刘丹')])
下面修改字典对象中的值。
【Excel VBA】
Excel VBA中使用字典对象的Item方法修改指定键对应的值。下面将字典对象dicT中第1个键的值改为"王东"。示例文件的存放路径为Samples\ch08\Excel VBA\字典元素的增删改.xlsm。
dicT.Item("No001")="王东"
【Python】
Python中修改指定键对应的值,在字典对象后面用中括号([])指定键名,在后面指定新的值。下面将字典对象dt中第1个键的值改为"王东"。
>>> dt['No001']='王东'
也可以使用字典对象的update方法修改键值对。
>>> dt.update({'No001':'王东'})
>>> dt
{'No001': '王东', 'No002': '大谦', 'No003': '马忠'}
删除字典元素
【Excel VBA】
Excel VBA中使用字典对象的Remove方法从字典中删除一个键值对,使用该方法时指定键,语法格式为:
dic.Remove(key)
其中,dic为字典对象;key为键名。如果指定的键不存在,会出错。
使用字典对象的RemoveAll方法可以清空字典。
【Python】
Python中使用del命令删除字典中的键值对。
>>> del dt['No001']
>>> dt
{'No002': '大谦', 'No003': '马忠'}
将指定的键作为函数参数,使用字典对象的pop方法删除指定键值对。该方法返回指定键对应的值。
>>> dt2=dt.pop('No001')
>>> dt2
'朱晓琳'
>>> dt
{'No003': '马忠'}
使用字典对象的clear方法清空字典中的所有键值对。
>>> dt.clear()
>>> dt
{}